GTKMM 监控 I/O 示例 100% CPU 负载

Posted

技术标签:

【中文标题】GTKMM 监控 I/O 示例 100% CPU 负载【英文标题】:GTKMM Monitoring I/O example 100% CPU load 【发布时间】:2015-09-24 19:30:28 【问题描述】:

我正在尝试来自here 的 Gtkmm 监控 I/O 示例。 将某些内容写入 fifo 后,CPU 负载将达到 100%。

示例链接中显示的代码是我用于测试(复制/粘贴)的代码,我只删除了 build.config.h 头进行编译。

我使用以下方法编译它:

g++ -Wall -o test main.cc `pkg-config gtkmm-3.0 sigc++-2.0 --cflags --libs`

将代码转换为 Gtkmm 2 后,行为是相同的,在将某些内容写入 fifo 后,CPU 负载仍会达到 100%。

我的问题是,这是一个错误还是一个已知问题,或者可能是一个非问题?

【问题讨论】:

【参考方案1】:

所以我终于想出了如何降低 CPU 使用率,我在示例中更改了以下行:

read_fd = open("testfifo", O_RDONLY);

到:

read_fd = open("testfifo", O_RDWR);

希望这对某人有所帮助。

gtkmm 邮件列表上this thread 中的答案描述了正在发生的事情。

【讨论】:

以上是关于GTKMM 监控 I/O 示例 100% CPU 负载的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter如何监控服务器CPU内存i/o等资源

Linux磁盘I/O性能监控之iostat详解

I/O密集型和CPU密集型

cpu,io密集型计算概念

记录一次数据库某表未创建索引造成的问题

监控文件描述符的六种方式(进程监控selectpoll非阻塞轮询I/O异步I/O线程监控)