【问题标题】:Performance Object cannot be seen in Windows 7在 Windows 7 中看不到性能对象
【发布时间】:2012-04-28 09:25:03
【问题描述】:

我希望将我的应用程序的一些状态注册为性能对象,以便我可以通过使用 Windows 性能监视器来监控它的性能。

但是我在使用 Windows 7 时遇到了一个问题:即使我的应用程序正在运行,性能对象也无法在性能监视器列表中看到。

我的代码和本教程中的Delphi项目一模一样: http://www.wehlou.com/Code/perfmon/index.htm

但是,本教程中提供的解决方案也不适用于 Windows 7。

这样的解决方案在 Windows XP 和 2003 中运行良好。

我不知道 Windows 7 是否有一些变化导致我的性能对象丢失。

请帮忙。提前致谢。

【问题讨论】:

  • 你指的性能对象是什么?你能提供一个简短的代码 sn-p 来说明它的使用吗?
  • 您需要在此处提供您的代码,而不是说“我的代码有点像”。首先,如果外部链接断开或消失,您的问题毫无意义。其次,我们看不到你实际上做了什么是行不通的。请编辑您的帖子并在此处提供代码;没有它,你的问题是无法回答的。谢谢。 :)
  • Welhou 的 PerfMon 在 Windows XP 中无法完美运行。

标签: delphi windows-7 performancecounter performance


【解决方案1】:

您的 Windows 7 计算机是 64 位计算机吗?您可能必须同时提供 32 位和 64 位版本:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa371636(v=vs.85).aspx

【讨论】:

    【解决方案2】:

    简短回答:

    是的,您可以在 Windows 7 x32 下手动修复 2 个对象性能计数器(DeltaCount 和 RawCount)问题。 PerfMonClient.exe 生成的 2 个文件是可用的(即 symfile.h 和 symfile.ini)。

    注意:lodctr.exe的用法参考MSDN。

    在此之前,应创建如下注册表项:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PerfMonClient\Performance]
    "Open"="PerfData_Open"
    "Close"="PerfData_Close"
    "Collect"="PerfData_Collect"
    "Library"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
      74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,50,\
      00,65,00,72,00,66,00,4d,00,6f,00,6e,00,44,00,4c,00,4c,00,2e,00,64,00,6c,00,\
      6c,00,00,00
    

    注意:库指向 %SystemRoot%\System32\PerfMonDLL.dll(性能 DLL 的位置)。

    使用 PerfMonClient.exe 应用程序安装和/或卸载它们的任何尝试即使在 Windows XP 下也不起作用。把它给忘了。


    看感觉:


    列表

    symfile.h:

    #define OBJECT_1   0
    #define DEVICE_COUNTER_1   2
    #define DEVICE_COUNTER_2   4
    

    symfile.ini:

    [info]
    drivername=PerfMonClient
    symbolfile=symfile.h
    [languages]
    009=English
    [text]
    OBJECT_1_009_NAME=PerfMonTest Performance Counters
    OBJECT_1_009_HELP=A demo application for your unbridled pleasure
    DEVICE_COUNTER_1_009_NAME=RawCount
    DEVICE_COUNTER_1_009_HELP=A count of something that goes up and down
    DEVICE_COUNTER_2_009_NAME=DeltaCount
    DEVICE_COUNTER_2_009_HELP=Something going up all the time, Windows shows difference per time unit
    

    【讨论】:

      猜你喜欢
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多