|
查看: 1458|回复: 0
|
MS Visual C++ 6.0 Stopwatch [ 更新 : 用着 QueryPerformanceCounter 面对问题 ]
[复制链接]
|
|
|
[请问各位, 小弟用Microsoft Visual C++ 6.0 做了一个WinMain 的程式,
想做一个Stopwatch 来算Program execution time (算我的程式用了多久时间来跑)
请问要如何做呢?
我找到的都是给 Console application 用的, 不是 Window App form 的。。
谢谢各位的帮忙, 感激不尽.
更新 :
小弟现在用着QueryPerformanceCounter 来算 Application running time
以下是Code :
float GetAppTimeDelay()
{
static bool m_bTimerInitialized = false;
static bool m_bUsingQPF = false;
static LONGLONG m_llQPFTicksPerSec = 0;
// Initialize the timer
if( ! m_bTimerInitialized )
{
m_bTimerInitialized = true;
// Use QueryPerformanceFrequency() to get frequency of timer. If QPF is
// not supported, we will timeGetTime() which returns milliseconds.
LARGE_INTEGER qwTicksPerSec;
m_bUsingQPF = (QueryPerformanceFrequency( &qwTicksPerSec )==0) ? false : true;
if( m_bUsingQPF )
m_llQPFTicksPerSec = qwTicksPerSec.QuadPart;
}
double fTime;
double fElapsedTime;
if( m_bUsingQPF )
{
static LONGLONG m_llLastElapsedTime = 0;
LARGE_INTEGER qwTime;
QueryPerformanceCounter( &qwTime );
// Return the elapsed time
fElapsedTime = (double) ( qwTime.QuadPart - m_llLastElapsedTime ) / (double) m_llQPFTicksPerSec;
m_llLastElapsedTime = qwTime.QuadPart;
}
else
{
// Get the time using timeGetTime()
static double m_fLastElapsedTime = 0.0;
fTime = timeGetTime() * 0.001;
// Return the elapsed time
fElapsedTime = (double) (fTime - m_fLastElapsedTime);
m_fLastElapsedTime = fTime;
}
return (float) fElapsedTime;
}
小弟跑了程式, 结果拿到 + - 25000 这个数目字,
想问, 这个数字是代表什么?milliseconds 还是 更小??
[ 本帖最后由 啊蛋 于 16-2-2009 11:03 PM 编辑 ] |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|