如何测出程序所需内存及时间??

永远的明日 2009-05-14 01:04:13
我想设定一个超时时间t,当程序运行时间超过t(例如遇到死循环),中止程序!
还有如何测出程序的内存开销
请问如何实现?先谢谢了!!
...全文
145 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilei3344 2009-05-15
  • 打赏
  • 举报
回复
学习一下purigy
fairchild811 2009-05-14
  • 打赏
  • 举报
回复
Purify is a memory debugger program used by software developers to detect memory access errors in programs, especially those written in C or C++. It was originally written by Reed Hastings of Pure Software. Pure Software later merged with Atria Software to form Pure Atria Software, which in turn was later acquired by Rational Software, which in turn was acquired by IBM. It is functionally similar to other memory debuggers, such as Insure++ and Valgrind.
老邓 2009-05-14
  • 打赏
  • 举报
回复
SetTimer就别想ms级了,尤其是死循环的时候,不准确的。
用户级的函数。
老邓 2009-05-14
  • 打赏
  • 举报
回复
timer是不准确的!
如果你要判断程序执行多长时间的话,只要单独开一个线程,然后在这样来执行:

while (true)
{
if (GetTickCount() > 某一个值)
PostQuitMessage(0);
else
Sleep(1);
}


精度是ms级的。
永远的明日 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
时间用timer就可以了
[/Quote]
能给个例子参考一下吗?
还有计时的精度是多少?我想精确到ms
十八道胡同 2009-05-14
  • 打赏
  • 举报
回复
时间可以用time_t time.h
老邓 2009-05-14
  • 打赏
  • 举报
回复
想知道占了多少内存,可以这样:
HANDLE hProcess = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;
if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(PROCESS_MEMORY_COUNTERS)))
{
if (pmc.WorkingSetSize > 1000 * 1024)
{
。。。
}
}
CloseHandle(hProcess);
老邓 2009-05-14
  • 打赏
  • 举报
回复
是为了测试一些函数执行速度吗?
参考这个:
#include <Windows.h>
#include <iostream>
#include <vector>

#define MAX_COUNT 60000000

typedef std::vector<int> VECTOR;
typedef std::vector<int>::iterator ITER;

int main()
{
VECTOR v;
DWORD t;

t = GetTickCount();
for (int i = 0; i < MAX_COUNT; ++i)
{
v.push_back(i);
}
std::cout << GetTickCount() - t << std::endl;

t = GetTickCount();
ITER end = v.end();
for (ITER iter = v.begin(); iter != end; ++iter)
{
(*iter)++;
}
std::cout << GetTickCount() - t << std::endl;

t = GetTickCount();
for (ITER iter = v.begin(); iter != v.end(); ++iter)
{
(*iter)++;
}
std::cout << GetTickCount() - t << std::endl;

system("pause");
return 0;
}
  • 打赏
  • 举报
回复
时间用timer就可以了
zhangzhongke007 2009-05-14
  • 打赏
  • 举报
回复
ding
  • 打赏
  • 举报
回复
虽然不知道,可是对这个有点兴趣,呵呵~~~
liliangbao 2009-05-14
  • 打赏
  • 举报
回复
帮顶!!!
windowsxp0925 2009-05-14
  • 打赏
  • 举报
回复
IBM的purify那套中有测内存和测函数耗时的
nk_ysg 2009-05-14
  • 打赏
  • 举报
回复
windows里面的DWORD GetTickCount(void);
只知道这个可以测时间
mengde007 2009-05-14
  • 打赏
  • 举报
回复
一个clock_t函数可以实现时间的测试;
IBM的一个Puifyplus可以测试出内存的消耗;

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧