高分请教关于计算机性能数据测试的问题

seekmore 2006-03-22 04:13:38
首先,我运行了一个程序(迅雷下载,为了够时间来测试,下了个msdn for vs.net 2003 :) ),打开控制面板-〉管理工具-〉性能,监控% process time,显示的平均值为6,最后值经常是3.125。
然后运行我得程序,发现有个现象,修改程序中的sleep(TIME),当TIME越小时,如10ms,100ms,程序测出来的数据比用工具测出来的数据普遍要大,而把TIME改到500ms时,终于也看到了3.125这样比较吻合的数据,请哪位大哥给我解释一下为什么会这样子?代码如下:
int CPDHInfo::GetPDHQuery(char *szObject,char *szInstance,char *szCounter)
{
HLOG phLog;
HQUERY hQuery;
HCOUNTER *pCounterHandle;
PDH_STATUS pdhStatus; //long int
DWORD ctrType,dwpcchBufferSize;
CHAR szPathBuffer[255] = {'\0'};
DWORD logType = PDH_LOG_TYPE_CSV;
//Open the query object.
try{
pdhStatus = PdhOpenQuery (0, 0, &hQuery);
if(pdhStatus!=ERROR_SUCCESS) throw -1;

pCounterHandle = (HCOUNTER *)GlobalAlloc(GPTR, sizeof(HCOUNTER));
if(pCounterHandle==NULL) throw -1;

if(strlen(szInstance)==0)
sprintf(szPathBuffer,"%c%s%c%s",BIAS_LEFT,szObject,BIAS_LEFT,szCounter);
else
sprintf(szPathBuffer,"%c%s%c%s%c%c%s",BIAS_LEFT,szObject,BRACKET_LEFT,szInstance,
BRACKET_RIGHT,BIAS_LEFT,szCounter);

pdhStatus = PdhAddCounter(hQuery,szPathBuffer,0,pCounterHandle);
if(pdhStatus!=ERROR_SUCCESS) throw -1;
#ifdef SYS_CREATE_PHDINFO_LOG_FILE
//vsn:1010 解决不能正确生成pdhinfo.log的问题
AnsiString sFilePath=ExtractFilePath(Application->ExeName);
AnsiString sFileName=sFilePath+szFileName;
if(!FileExists(sFileName))
FileCreate(sFileName);
#endif

// Open the log file for write access.
pdhStatus = PdhOpenLog(szFileName, PDH_LOG_WRITE_ACCESS | PDH_LOG_CREATE_ALWAYS ,
&logType, hQuery, 0, NULL, &phLog);

if(pdhStatus!=ERROR_SUCCESS) throw -1;

// Capture 10 samples and write them to the log.
for (int i= 0; i<10; i++) {
pdhStatus = PdhUpdateLog(phLog, TEXT("Some Text."));
if(pdhStatus!=ERROR_SUCCESS) throw -1;
Sleep(500); // Sleep for 1 seconds between samples
}
// Close the log and the Query

PdhCloseLog(phLog, PDH_FLAGS_CLOSE_QUERY);
}catch(...){
return -1;
}
return 0;
}
数据是10次采样写进Log里的。
...全文
27 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
windows网络管理与配置
创建于2007-08-02

6065

社区成员

windows网络管理与配置
申请成为版主
帖子事件
创建了帖子
2006-03-22 04:13
社区公告
暂无公告