DOBON.NET DOBON.NETプログラミング掲示板過去ログ

動作が急に重くなるのはなぜ?

環境/言語:[WinXPSP1、VB.NET ver2002 Standard、Framework1.1]
分類:[.NET]

お世話になっております。

現在
 実践 VBエンジニアのためのVB.NETビルドアップテキスト
 http://www.gihyo.co.jp/books/syoseki.php/4-7741-1733-1
という本でメールソフトの勉強をしているのですが、
この本に掲載されているプログラムを実行すると、
受信後全ての動作が遅くなります。
(受信自体も遅いですが、このあたりは.NETというより、
プロトコルの勉強が必要そうなのでまだ調べきってません)

※サンプルプログラムは上記URLより[補足情報]リンクをたどりDL・解凍した中の、
 「Chapter8」というフォルダにあります。

何が原因なのかわかりません・・・
何か思い当たることなどありましたらよろしくお願いいたします。
■No2747に返信(yuyuさんの記事)
> 何が原因なのかわかりません・・・
> 何か思い当たることなどありましたらよろしくお願いいたします。

  私もそれを参考にいろいろやっておりますが、そのような
  ことは発生していません。

  WinXP と言うことですので、タスクマネージャでのCPUの
  負荷の変移や本当に重くなったのかどうかをご確認下さい。

  尚、そのプログラムを終了した後、終了しきれずメモリに
  プロセスが残っていないかもご確認下さい。

※ スレッドでソケットの送受信を行っていますので、ネットワーク
  環境やダイアルアップのような場合、ソケットのクローズ処理で
  待ち合わせたまま止まっているようなことは無いですか?
  そうしますと、スレッドが終了しないので、プロセスがメモルに
  残ることになります。

以上。

>   WinXP と言うことですので、タスクマネージャでのCPUの
>   負荷の変移や本当に重くなったのかどうかをご確認下さい。

タスクマネージャで見てみたところ、
CPUの不可は受信中・受信後も0〜10%で、それほど問題はなさそうです。
受信後、メモリが100MBにも達しているので、そのあたりが問題でしょうか。
プログラム終了後はプロセスも残っていませんし、メモリも解放されているようです。
■No2766に返信(yuyuさんの記事)
>
> タスクマネージャで見てみたところ、
> CPUの不可は受信中・受信後も0〜10%で、それほど問題はなさそうです。
> 受信後、メモリが100MBにも達しているので、そのあたりが問題でしょうか。
> プログラム終了後はプロセスも残っていませんし、メモリも解放されているようです。

  メモリが、100MBも使用されているという部分が、怪しいと思ったのですが
  こちらの環境で実行した結果、200MBを超えていました。
  とんでもないアルゴリズムになっているように思います。このソフト・・・

  よって、搭載メモリとスワップの関係で、そのメールソフトを終了させて
  も、以降の状態が、重い・・・と認識されるような状態に陥っているのだ
  と考えます。

  HDDのデフラグや、搭載メモリ・スワップの関係を、見直してみて下さ
  い。

以上。

DOBON.NET | プログラミング道 | プログラミング掲示板