16GBぐらいメモリーを積んでれば1.1GBまでは読み込めることを確認した。
ただ、ずるをしていて、行の構築はぎりぎりまでしないようになっている。
一応、最終行への行ジャンプと編集と削除、置き換えだけはできるし、保存と内容の表示もできるが、最終行まで表示すると3GB近くメモリーを食う。
読み込んだだけでも2.5GB近くはメモリーを食う。
読み込んでから操作できるようになるまでかかる時間: 35秒程度
保存: 13秒程度
全置換え: 25秒程度
全置換えからのアンドゥ: 25~40秒程度だったと思う
しかも、速いとか。
とはいえ、ここまでできたのBigList、もといRopeのおかげだ。
Ropeの存在を知らなかったら、.NETで巨大ファイルの編集は夢のまた夢だった。
とはいえ、BigListに制約(Int.MAX-1=2^31-1までの要素しか扱えない)があるし、LOH入りを回避するため、ブロックサイズを64KBに抑えてるので、せいぜい2GBぐらいまでしか扱えないが…
(BigListは計算上、4GBまでなら読み込みだけならできるけど、最大行数がInt.MAX-1=2^31-1までしか保持できないので、実質的には無理やと思う。それにそこまでの動作は確認してない。NTFSで一般には手に入らないマシンを用意してまで動作確認したマイクロソフトすごすぎ)
鈴川エディタもリンクドリストでそれぞれのファイルをつなげると遅いので、おそらくRopeの考え方を使っているものと思われるが、あの意味不明なリバランスのやり方を論文から読んでそのまま実装するのはすごいとしか言いようがない。
バイナリーもだした。 WinUI3で書いてるので、Windows11と10以外は起動すらしないと思う。 ライセンス読めばわかるけど、フリー。 ビルドはVisualStudio2022が必須。 どういうデーター構造と処...