1

hereの Gtkmm Monitoring I/O example を試しています。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% になります。

私の質問は、これはバグですか、既知の問題ですか、それとも問題ではないのでしょうか?

4

1 に答える 1

1

それで、CPU使用率を下げる方法をようやく見つけたので、例の次の行を変更しました。

read_fd = open("testfifo", O_RDONLY);

に:

read_fd = open("testfifo", O_RDWR);

これが誰かに役立つことを願っています。

gtkmm メーリング リストのこのスレッドの回答は、何が起こっているかを説明しています。

于 2015-09-25T18:31:05.607 に答える