Joe*_*Joe 11 linux performancecounter
我试图弄清楚是否有一个库给我一些接近相当于Windows自定义性能计数器的东西(这里描述http://geekswithblogs.net/.NETonMyMind/archive/2006/08/20/88549.aspx)
基本上,我正在寻找可用于跟踪应用程序中的全局计数器的东西,以及(理想情况下)通过定义良好的接口向其他应用程序/用户呈现该信息的东西.这些是应用统计; 像内存和磁盘这样的东西可以通过其他方式捕获,但我希望公开在我的应用程序生命周期中处理的吞吐量/事务/"小部件".
我见过这个问题:
还有这个
但这两者都不是我想要的.我不想写一个静态文件(毕竟这是动态信息;即使磁盘已满,我也应该能够得到它),而且如果可能的话,宁可避免使用自己开发的代码集.理想情况下,至少在Linux上,这些数据(我认为)会以某种方式通过/ proc浮出水面,虽然我不清楚是否可以从用户区域完成(这不太重要,只要它在某些方面浮出水面)给客户的方式.)
但回到问题的关键:是否有任何内置或合适的第三方库为我提供适用于我可以在Linux和其他*NIXy操作系统上使用的应用程序指标的自定义全局(线程安全,高性能)计数器?(并且可以从C/C++接口?)
除了@user964970评论/解决方案之外,我建议使其与操作系统无关。
使用与操作系统无关的 API(例如 ACE 或 BOOST)来创建您自己的库,提供放置在命名共享内存段内的命名信号量写保护计数器。
这应该是你的图书馆的 API :
long * createCounter(const char * name); // Create a counter
// Will create a named semaphore and a named
// shared memory segment, holding the counter
// value. Will return pointer to counter
long * getCounter(const char * name); // Get existing counter pointer
// in the calling process' address space
long incCounter(const char * name); // increment existing counter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |