有人知道使用普通非托管 Visual C++ 创建自定义性能计数器的方法吗?
我知道使用托管 C++ 可以轻松完成,但我需要使用非托管 Windows 服务来完成。
我也知道您可以检索性能计数器数据,但我需要创建一些自定义计数器并在应用程序运行时递增它们。
最佳答案
对添加 C++ 性能计数器的支持在 Vista 及更高版本中发生了变化。另一个答案中建议的性能 DLL 方法仍然有效,但描述的新技术 here更易于使用。
在这种方法中,您编写一个描述您的计数器的 list ,运行 CTRPP,这是一个从您的 list 生成代码的工具。编译此代码并将其与您的应用程序链接,并添加一个初始化进程的调用(它启动一个后台线程),并添加代码以根据需要更新计数器。发布计数器的细节由运行生成代码的后台线程处理。
您还需要运行 lodctr/m:[manifest file] 来注册您的计数器,然后才能使用它们。这必须以管理员身份运行。
顺便说一句:另一个程序 unlodctr 反转 lodctr 的效果,如果您对计数器进行任何更改,则必须使用它,因为没有“替换”操作,只能删除旧的,然后安装新的。
关于c++ - 在 Visual C++ 中创建自定义性能计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753/