butterfly search 4.0 をリリースしました。

 リリース先:   https://www.vector.co.jp/soft/winnt/util/se437071.html

(vectorさんでの審査後に公開されます。執筆時点では旧バージョンが公開されています)


大きな変更点としては、処理速度の改善があげられます。

コンパイラをVisual Studio 2022にして、アプリを32bit→64bit化しています。

これによってボトルネックだったメモリの使用上限2GB(4GB設定だけど実際には2GBくらい/理由は後述)が無くなりました。

ポインタサイズが2倍(データ量が2倍)になり、PCに求めるスペックも2倍になりました。

結果的には思ったより時間短縮にはなりませんでしたが、今後CPUのスレッド数が増えれば時間短縮になっていくと思います。

動作するスレッド数はメモリの搭載量に比例して変化するように作ってあります。

現在は最大12スレッドで動作するようになっています。12の理由は私が使用しているPCがRyzen 5 1600(12スレッド)だからです。


機能面としては、日付のヒートマップ画面の追加があります。何月何日に何が起きたのかを2次に展開した形で確認できると思います。年号(大正、昭和とか)も認識するはずです。こちらは現在もバグばかりの状態なので今後に期待していただければと思います。



■技術的な話

32bitアプリの延命措置として/LARGEADDRESSAWAREオプションをよく使用すると思います。

/LARGEADDRESSAWAREオプションをコンパイル時に使うと2GB→4GBまでメモリを使用できるようになると書いてあります。ですがこれは、実際にはメモリを一度も開放しない場合の話。malloc()後free()しないのであれば4GB近くまで使えますが、

malloc()とfree()は繰り返しますよね。そうすると仮想アドレスが断片化するので、大きなサイズの仮想アドレスの確保がうまくいかなくなります。

例えるなら電話番号0000から9999までの1万回線を連続して所持したいという希望があった時、設備にも余裕があったとしても古い電話帳では連続した空きは見つかりませんね。そんな感じです。

コメント

このブログの人気の投稿

よく使われる四文字熟語ランキング

butterfly search 4.1 をリリースしました。