23日以降使い込んできましたがバグが見つからないようなので、前回アップロード分を正式版1.11とします。
100223release
またバグがあれば修正しますが、何もなければ次回アップデートはVisualStudio2010リリース以降になるでしょう。
これまでのリリース
2009年12月14日 1.0リリース
2010年02月10日 1.1リリース
検索結果表示用タブの増設
外部ツールとの連携機能を追加(現在はFireFileCopyのみ)
その他バグを多数修正
2010年03月04日 1.11リリース
バグを多数修正
Archive for the '今後の予定' Category
ファイル・フォルダの監視システムにあるバグを特定できました。
ファイルが連続で更新されるときに、バッファオーバーフローを起こしていました。
バッファを増やし、バッファオーバーフローを起こしたときに監視システムのみを自動的に再起動するように書き換えることにします。
以前に修正した
ファイルの更新タイミングにより、ディスク監視プロセス内部でデッドロックが発生する
というバグが完全には直っていなかったのを確認してしまいました。
ファイルの破損などが起こるわけではなく表示だけの問題なので、タブを再読み込みすれば元通りなので深刻ではありませんが、問題はバグの箇所が特定できないところです。
修正にはしばらくかかりそうです。
.net4では従来のforループやforeachループをマルチスレッドとして動かせる機能が新規に追加されます。
「俺の俺による俺のためのファイラー」でもこのループ文を使っていますが、残念ながら下手に新しいマルチスレッド対応型のループ文に変えるととんでもないことになりそうです。
たとえばファイルの容量を調査するループ文があったとして、100個のファイルを順番に調べていくのと、100個のファイルを同時に調べるのとでは、ディスクにかかる負荷が恐ろしく違うでしょう。
当ソフトはファイラーなので、ループ文で処理しているところの多くはディスクIOに関わるところであり、下手にマルチスレッド化するとディスクを破壊する可能性があります。だからディスクIO部分では採用しません。
ディスクIO以外でもループ文を使っているところはありますが、そういうところは非常に軽い処理で、おそらく0.01秒くらいで処理が終わっています。だからこれをマルチスレッド化すると、各スレッドの調停や結果の結合などの手間から逆に遅くなる可能性があります。
唯一使えそうな部分は、ネットワークドライブの接続処理ですね。多数のネットワークドライブを接続している環境では、ループ文でドライブを一つずつ接続していくよりも、全ネットワークドライブを一気に接続したほうが早くなります。
ここで採用しようと思っています。
なんにしろ来年になりますが。