投稿

4月, 2023の投稿を表示しています

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万回線を連続して所持したいという希望があった時、設備にも余裕があったとしても古い電話帳では連続した空きは見つかりませんね。そんな感じです。

SVN リビジョン1000はありません 「No such revision xxxxx」

イメージ
butterfly searchのソースをコミットしようとしたらTortoiseSVNが 「リビジョン1000はありません」って言ってくるじゃないですか。 もうこのカメちゃんったら、寂しがりやさんなのね。。。 惨事が起きていると理解し、SVNのリポジトリが壊れたことが分かったのだけれども、SVNのリポジトリはGoogleドライブに置いているだよね。Googleドライブが壊れる訳ないよね。 症状としては、リビジョン1000のコミットではエラーが出ないけど、その次の1001のコミットで1000に関してのエラーがでる。 処置としては、、、  リビジョンを999に戻して、SVNのリポジトリをGoogleドライブ(Gの仮想ドライブ)に置かない。でとりあえず復旧しました。仮想ドライブ上では操作しても復旧できませんでした。 SVNはリビジョン1000毎にフォルダを作るのだけれど、それがGoogleドライブ上ではうまく行かないって事なんだろうな。butterfly searchで検索Gドライブを検索させるとエクセプションが発生するのでGoogleドライブが提供している何かのAPIに問題があると思われる。 障害発生時のバージョン情報 TortoiseSVN TortoiseSVN 1.14.5, Build 29465 - 64 Bit , 2022/09/24 08:31:31 ipv6 enabled Subversion 1.14.2, -release Google ドライブ バージョン: 73.0.4.0