最近在测试中发现一个问题,我们的32位程序的计数器在Windows 2003 X64系统中无法获取性能计数器的数值,这个给测试带来不少痛苦,没有这些数据是很难分析测试结果的,后来查了查发现了原因,原来是32的程序必须用32位的性能计数器来抓取结果。解决办法如下:
1. 如果是需要实时监控结果,那么很简单,在启动性能计数器程序的时候,不要用默认的快捷方式,而是打开C:/Windows/SysWOW64/perfmon.exe
2. 需要在后台把计数器的结果保存到日志文件中,这也是测试中最常见的用法,在注册表中做如下更改:
- 打开注册表编辑器
- 打开HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SysmonLog
- 找到ImagePath,当前值为 %SystemRoot%/system32/smlogsvc.exe
- 修改为:%SystemRoot%/ SysWOW64/smlogsvc.exe
试试看,刚才无法记录的32位计数器现在应该可以工作了。
32位程序在64位Windows的性能计数器问题及解决方案
在Windows 2003 X64系统中,32位程序的性能计数器无法正常工作,导致测试数据缺失。解决方法包括:1) 使用C:/Windows/SysWOW64/perfmon.exe进行实时监控;2) 修改注册表HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SysmonLog的ImagePath,将%SystemRoot%/system32/smlogsvc.exe改为%SystemRoot%/SysWOW64/smlogsvc.exe,使得32位计数器能够记录数据。
6575

被折叠的 条评论
为什么被折叠?



