当前位置:  开发笔记 > 编程语言 > 正文

在Visual C++中创建自定义性能计数器

如何解决《在VisualC++中创建自定义性能计数器》经验,为你挑选了2个好方法。

有没有人知道使用普通的非托管Visual C++创建自定义性能计数器的方法?

我知道可以使用托管C++轻松完成,但我需要使用非托管Windows服务.

我也知道您可以检索性能计数器数据,但我需要创建一些自定义计数器并在应用程序运行时期间递增它们.



1> Johannes Pas..:

请参见此处:http: //msdn.microsoft.com/en-us/library/aa371925.aspx

这并不是很难,但有点单调乏味,因为API涉及广泛使用自引用的可变长度结构,并且必须使用一些IPC机制来从被监视的进程获取数据.



2> Dale Wilson..:

在Vista及更高版本中,对添加C++性能计数器的支持发生了变化.在另一个答案中建议的性能DLL方法仍然有效,但这里描述的新技术更容易使用.

在这种方法中,您编写了一个描述您的计数器的清单,运行CTRPP,一个从清单生成代码的工具.编译并将此代码与您的应用程序链接,并添加一个调用来初始化该进程(它启动一个后台线程),并添加代码以根据需要更新计数器.发布计数器的详细信息由运行生成的代码的后台线程处理.

您还需要运行lodctr/m:[manifest file]来注册您的计数器,然后才能使用它们.这必须以管理员身份运行.

BTW:另一个程序,unlodctr反转lodctr的效果,如果你对你的计数器进行任何更改必须使用,因为没有"替换"操作,只删除旧的,然后安装新的.

上述所有文档都非常糟糕.例如,lodctr完全针对Vista进行了重新设计,但MSDN中的文档完全适用于XP版本,不再适用.如果您访问MSDN,请使用"此文档无用"按钮,并且Microsoft可能会收到消息.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有