gpt4 book ai didi

linux - Linux 中的应用程序计数器? (和 OSX?)

转载 作者:IT王子 更新时间:2023-10-29 00:02:00 25 4
gpt4 key购买 nike

我想弄清楚是否有一个库可以提供与 Windows 自定义性能计数器相当的东西(此处描述 http://geekswithblogs.net/.NETonMyMind/archive/2006/08/20/88549.aspx)

基本上,我正在寻找既可用于跟踪应用程序内的全局计数器,又可(理想情况下)通过定义明确的界面向其他应用程序/用户呈现该信息的东西。这些是应用统计数据;内存和磁盘之类的东西可以通过其他方式捕获,但我希望公开在我的应用程序生命周期内处理的吞吐量/事务/“小部件”。

我看过这个问题:

Concept of "Performance Counters" in Linux/Unix

还有这个

Registry level counters in Linux accessible from Java

但这两者都不是我想要的。我不想写一个静态文件(毕竟这是动态信息;即使磁盘已满等,我也应该能够获取它),并且宁愿尽可能避免使用自己编写的代码集。理想情况下,至少在 Linux 上,这些数据(我认为)会以某种方式通过/proc 浮出水面,尽管我不清楚是否可以从用户空间完成(这不太重要,只要它在某些地方浮出水面)给客户的方式。)

但回到问题的关键:是否有任何内置或合适的第 3 方库可以为我提供适用于我可以在 Linux 和其他 * 上使用的应用程序指标的自定义全局(线程安全、高性能)计数器NIXy 操作系统? (并且可以从 C/C++ 接口(interface)?)

最佳答案

除了@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

关于linux - Linux 中的应用程序计数器? (和 OSX?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com