CPU使用率についてNo.39083
たなかん さん 10/09/02 13:14
 
お世話になっております。

普段は快適に秀丸メールを利用させていただいていますが、
急にPCが重くなり、タスクマネージャで確認すると、turukame.exeのCPU使用率が60
〜85%とかなり高負荷になっている場合があります。

秀丸メールの再起動をかけるとなおりますが、しばらくするとまた同様の現象がおき
ます。

確実ではないですが、メールの検索をした後にこの現象が多いような機がしています。

環境はXP、サービスパック3です。

何か原因は考えられるでしょうか?

お手数ですが、回答を頂ければ幸いです。

[ ]
RE:39083 CPU使用率についてNo.39084
秀まるお2 さん 10/09/02 13:34
 
 秀丸メールを何も操作してないにも関わらず、秀丸メール・プロセスのCPU使
用率が跳ね上がるということで、何か思い当たる所はというと…

 ちょっと思い当たる所が無いです。すみません。

 秀丸メール上で、何か動く系のHTMLメールを表示している最中だとしたら、そ
れでCPUパワーが食われるといことはあるかと思いますけども、そういうのじゃ
ないですよね。

 あと他には…。googleデスクトップを使っている場合だと、裏でインデックス
化が走るとは思いますが、それは秀丸メールプロセス内ということは無いはずで
す。

 アンチウィルスソフトがウィルス検査するのも…。メールを受信したタイミン
グだけだと思うのでアイドル中に、秀丸メールプロセス内でCPUパワーを食うと
いう風にはならないと思います。

 ということでいまいち分かりません。

 CPUパワーを食ってる最中に、Hangup Checkerのログを取っていただけると、
それで原因が特定出来る可能性が高いような気がします。そういう作戦をお願い
したい所です。やり方を説明させていただきますと…

 1.「設定・全般的な設定...」を実行して、左下にある
   「上級者向け設定」をONにする。
 2.設定の一覧から「上級者向け・デバッグ」を選択する。
 3.右側に「Hangup Checkerを常駐させる」のオプションがあるのでそれを
   ONにして、あとOKする。

    そうすると、タスクバーのトレー部分にピストル型アイコンが出てき
    ます。それがHangup Checkerです。

 4.あとは普通に秀丸メールを使って、秀丸メールがCPUパワーを食う
   状態になるのを待つ。
 5.CPUパワーを食うようになったら、ピストル型アイコンの上でマウス
   右ボタンを押して、「現在の状況をdump.txtに出力する」を実行する。
   すると、「ハッグアップしてないと思われます。かまわずに…」と聞い
   てきますが、かまわず「はい」とします。

 6.秀丸メールのデータ用フォルダ(普通はC:\TuruKameData)にdump.txt
   ファイルが生成されるので、それを添付ファイルで送っていただく。

 送り先は、"maruo@mitene.or.jp" です。

 送った後のdump.txtは削除して欲しいです。
 (どんどんたまっていってしまうので)

 ということでどうでしょ?

[ ]
RE:39084 CPU使用率についてNo.39102
秀まるお2 さん 10/09/03 14:25
 
 dump.txt送っていただきありがとうございます。

 中身を見てみたんですけども、秀丸メールとしては完全にアイドリング状態と
いうか、いわゆるWindowsの「GetMessage」というAPIを呼び出してメッセージが
届くのを待ってるだけの状態になっていて、なにもしてないです。

 なので、CPU使用率が跳ね上がってるのは秀丸メールではなくて、何か別のプ
ロセスの方じゃないかと思いますけど、どうでしょ?

 Ctrl+Alt+Deleteキーを押してタスクマネージャを起動してから「プロセス」
のページを表示させると、具体的にどのプロセスがCPUパワーを食っているのか
分かると思います。

 「TuruKame.exe」となってる所のCPU使用率じゃなくて、何か別のプロセスの
CPU使用率が跳ね上がってるんじゃないかと思いますけども…。

 もしも、たしかにTuruKame.exeの方でCPU使用率が跳ね上がっているのだとし
たら、何か秀丸メールのプロセス内で別のソフトがスレットを生成してCPUパ
ワーを食ってるということがあるのかもしれませんが…。

 もしそういう話(TuruKame.exeのCPU使用率が高い)だとしたら、なんとかし
てもうちょっと詳しい情報をdump.txtに出すような作戦を考えたい所ではありま
す。

 ということで、その辺教えて欲しいです。

[ ]
RE:39102 CPU使用率についてNo.39110
たなかん さん 10/09/04 17:37
 
ご連絡ありがとうございます。

> Ctrl+Alt+Deleteキーを押してタスクマネージャを起動してから「プロセス」
>のページを表示させると、具体的にどのプロセスがCPUパワーを食っているのか
>分かると思います。

今回ご相談させていただいたのは、上記の方法で、「TuruKame.exe」のCPUが高くな
っていたためご相談させて頂いたので、間違いではないです。
通常であれば(現在も)「TuruKame.exe」のCPUは0%になっているのですが、かなり
PCが重いな?と思ってタスクマネージャで確認すると、「TuruKame.exe」のCPU使用
率が上がっている、ということがこれまでに4,5回程度あります。

メールでご回答頂いたgoogle desktopなどもインストールしておりますが、その場合
は、「GoogleDesitop.exe」のプロセスがCPUを消費するのでは、と推測しております
が…。

現在は、ハングアップチェッカーを常に起動している状態ですので、
また同様の現象が起きたら、もう一度dump.txtを送らせていただきます。


もうしばらく様子をみてみます。
回答ありがとうございました。

[ ]
RE:39110 CPU使用率についてNo.39111
秀まるお2 さん 10/09/04 22:23
 
 先日送っていただいたdump.txtでは、たしかに秀丸メールの生成した2つのス
レッド(秀丸メール本体用のスレッドとエディタ・ウィンドウ1つ用のスレッ
ド)では、GetMessageというWindowsのAPIを呼び出したままアイドリング状態に
なっていることが確認出来ました。

 もしかすると、Googleデスクトップが秀丸メールのプロセス内に独自のスレッ
ドを生成して、それがCPUパワーを食っているとしたら、それはちょっと僕の
dump.txtログには記録が出ないです。

 (ちょっと話が専門的ですみませんが)

 Googleデスクトップの他には、IMEや、あと、WebBrowserコントロールも内部
的に独自のスレッドを生成したりするようではあります。その辺が裏で何か活動
すると、それが結果的にTuruKame.exeのプロセス内での活動の一部としてタスク
マネージャに出てきてしまったりというのはあるかと思います。

> 現在は、ハングアップチェッカーを常に起動している状態ですので、
> また同様の現象が起きたら、もう一度dump.txtを送らせていただきます。

 とりあえずそういう作戦でお願いします。

 秀丸メールが独自に生成したスレッドとは別のスレッドについても記録が取れ
たら一番いいので、それについてもぼちぼち調べてみます。

[ ]
RE:39111 CPU使用率についてNo.39113
秀まるお2 さん 10/09/04 22:40
 
>  秀丸メールが独自に生成したスレッドとは別のスレッドについても記録が取れ
> たら一番いいので、それについてもぼちぼち調べてみます。

 WindowsSDKの「Process and Thread Functions」の中にはそれらしき関数(プ
ロセス内のスレッド一覧を取得する関数のような物)は無いようです。

 プロセス内のスレッドの一覧をenumelateするような関数があれば、具体的に
何がCPUパワーを食ってるのか調べられると思うんですが…

 誰か知ってる人いたら教えて欲しいです。

[ ]
RE:39113 CPU使用率についてNo.39116
秀まるお2 さん 10/09/06 09:45
 
 スレッドIDを0〜FFFFまでループさせて、そのスレッドIDでOpenThreadに成功
するかどうか調べて、成功したら、さらにGetProcessIdOfThreadで自分のプロセ
ス内のスレッドかどうか調べるなどして、無理矢理ですが、すべてのスレッドの
ログを取ることが出来そうになりました。

 ということで次のバージョンのその処理を入れます。

 (Hangup Checkerのマウス右ボタンメニューに入れます)

[ ]
RE:39116 CPU使用率についてNo.39117
秀まるお2 さん 10/09/06 09:58
 
 うまくいったと思ったんですが、WindowsXPの32bit版だとダメでした。

 GetProcessIdOfThread関数は、Windows Vista以降でないと使えないと書いて
ありました。だけども手元のWindowsXP 64bit版環境ではなぜかうまく使えたの
でいけると思ったんですが、32bit版でテストしたらやっぱりダメでした。

 あと他には…。googleデスクトップを手元のマシンにインストールしてテスト
してみます。(これが一番怪しいと思うので…)

[ ]
RE:39117 CPU使用率についてNo.39121
秀まるお2 さん 10/09/07 11:20
 
 秀丸メールが最初からロードしてるDLLのDllMain関数の所でスレッドIDを取得
することが出来ました。

 DLL_THREAD_ATTACHの通知でスレッドIDが取得出来ました。

 ということで、次のβ版(V5.50β16)にて、すべてのスレッドの実行状況が
出力出来るようになっています。

 そちらでログを取って欲しいです。

 ということでお願いします。

ダウンロード用URL:
http://hide.maruo.co.jp/software/bin/hmmail550b16_signed.exe

>  あと他には…。googleデスクトップを手元のマシンにインストールしてテスト
> してみます。(これが一番怪しいと思うので…)

 こちらで使ってた限りでは、googleデスクトップは本当にマシンがアイドルに
なった時でないと活動しないようで、活動してる最中は、GoogleDesktop.exeと、
あと、rundll32.exeのプロセスがCPUパワーを食ってるだけのようでした。

 秀丸メールのプロセス内(Turukame.exe内)にも勝手にスレッドは生成されて
るようではありますが、インデックス作成中にそれが活動するという訳でもなさ
そうです。

 ということでよく分かりませんでした。

 HTMLメール編集アドインの使っているWebBrowserコントロールも勝手にスレッ
ドを生成しているようなので、それが関係してる可能性はあるかもしれません。

 あと、「検索して一覧作成」を実行する時には、実はマルチスレッドで検索す
るようになっていたりします。そのスレッドが何らかの異常を発生してるとした
ら、検索の後に遅くなるってことはあるかもしれません。「全般的な設定・上級
者向け・その他・その他2」の所にある「検索して一覧作成での並行処理数」を
1に設定すれば、マルチスレッドでの検索はしなくなります。それも試していた
だけると原因究明のヒントになるかもしれないです。

[ ]