精确计算代码执行的时间差(毫秒)-QueryPerformanceFrequency。
2009-12-24 01:05
579 查看
LARGE_INTEGER countstart_for; LARGE_INTEGER countend_for; __int64 timediff_for; LARGE_INTEGER frequent_for; double dsec_max = 0; double dsec_min = 0; QueryPerformanceCounter(&countstart_for); TRACE("Timer (for) Started !/n"); for (long i = 0; i< 10000; i++) { LARGE_INTEGER countstart; LARGE_INTEGER countend; __int64 timediff; LARGE_INTEGER frequent; QueryPerformanceCounter(&countstart); TRACE("Timer Started !/n"); //// TODO: 在此处为应用程序的行为编写代码。 _tsetlocale(LC_ALL, _T("")); //char * wsabuff = "中fadfdf国人"; char * wsabuff = "楓谷測試"; // Convert ANSI to Unicode //第一步取得需要转换的字符的长度 unsigned long lLen = strlen(wsabuff); //第二步取得转换成WCHAR,所需要的字符数 int cch = MultiByteToWideChar(CP_ACP,0, wsabuff, lLen, NULL, 0); //第三步定义数组并清零 WCHAR * wszBuffer = new WCHAR[cch + 1]; ZeroMemory((char *)wszBuffer, (cch+1)*sizeof(wszBuffer[0])); //第四步转换 MultiByteToWideChar( CP_ACP, 0, wsabuff, lLen + 1, wszBuffer, cch); TRACE(L"%s/n", wszBuffer); BYTE charUTF8[200]; ZeroMemory(charUTF8, 200); WideCharToMultiByte(CP_UTF8, 0, wszBuffer, -1, (LPSTR)charUTF8, 200, NULL, NULL ); delete [] wszBuffer; CString str = L"123, 456789, 1223, 0000-88191463 13000000000"; CString strToken = L", "; int nStartIndex = 0; for (int nEndIndex=0;nEndIndex = str.Find(strToken, nStartIndex), nEndIndex >=0 ; nStartIndex = nEndIndex + strToken.GetLength()) { CString strTemp = str.Mid(nStartIndex, nEndIndex - nStartIndex); //TRACE(L"%s/r/n", strTemp); } CString strTemp = str.Mid(nStartIndex); TRACE(L"%s/r/n", strTemp); QueryPerformanceCounter(&countend); timediff = (__int64)countend.QuadPart-(__int64)countstart.QuadPart; QueryPerformanceFrequency(&frequent); double dsec = (double)timediff/(double)frequent.QuadPart; TRACE("Timer End. Elapsed time:%f(second)/n",dsec); if (dsec < dsec_min || dsec_min == 0) dsec_min = dsec; if (dsec > dsec_max || dsec_max == 0) dsec_max = dsec; } QueryPerformanceCounter(&countend_for); timediff_for = (__int64)countend_for.QuadPart-(__int64)countstart_for.QuadPart; QueryPerformanceFrequency(&frequent_for); double dsec_for = (double)timediff_for/(double)frequent_for.QuadPart; TRACE("Timer (for) End. Elapsed time:%f(s), min=%f(s), max=%f(s)/n",dsec_for, dsec_min, dsec_max);
精确计算代码执行的时间差。
相关文章推荐
- 使用QueryPerformanceFrequency 计算程序执行时间
- 计算php代码执行时间长短的类(精确到毫秒)
- 使用QueryPerformanceFrequency 计算程序执行时间
- 使用QueryPerformanceFrequency 计算程序执行时间
- QueryPerformanceCounter精确计算执行时间
- 使用QueryPerformanceFrequency 计算程序执行时间
- 使用QueryPerformanceFrequency 计算程序执行时间
- c++怎么计算代码运行时间到超精确毫秒级别
- 使用QueryPerformanceFrequency、QueryPerformanceCounter精确计时
- VC精确计算代码执行时间
- 如何精确计算程序运行时间——精确获取时间(QueryPerformanceCounter)
- 精确计算代码执行时间
- 精确计时(QueryPerformanceFrequency)
- C++记录精确时间-QueryPerformanceFrequency()
- JNI调用C计算代码执行时间(毫秒)
- Oracle计算时间差为毫秒的实现代码
- java代码计算时间差,精确到 天、月、日、时、分、秒、毫秒
- C++利用QueryPerformanceCounter计算代码运行时间
- QueryPerformanceFrequency() 计算程序运行时间
- VC精确计算代码执行时间方法