2024-12-11

ファイルの中身をメモリーにおいていいなら、そこまで難しくはないな。

スクロールやキャレットの画面外の移動の時だけ、レイアウト行を構築すればそれでおしまい

http://s170199.ppp.asahi-net.or.jp/vivi/docs/buffer/edit_buffer.php

ViViエディターの人の記事が書いているような複雑怪奇バッファー管理はいらない。

メモリーを32GBぐらい積んでいれば、ギャップバッファーでも1GB未満の大きさのファイルの読み書きは簡単にできる。

自作エディタでも900MBを12秒ぐらいで読み込むことができた。

(この時のメモリー使用量は2035MB程度)

ただ、この機能実装すると行ジャンプダイアログを出したときに最大行数がわからなくなる。

まともに使いたいなら、ちょっと考え方を変えないと駄目だ。

1GBを超えると何かしらの制限に引っ掛かる。

EmEditorや鈴川エディタ、巨大ファイル対応ログビュアーなど巨大ファイルを扱えるエディターはマジすごい。

最低賃金ウェブプログラマー雑用で、大学受験に落ちた俺にはこれが限界…。

piece_tableとかマジで意味からない。

自作エディターでつかってるgap_vectorもどこかから拾ってきたやつで、スクラッチで書いたわけではない。

こんなことなら、きちんと数学IIICを勉強して情報系の大学に行けるようにするべきだった。

大学に入るためには教科書の基礎問題だけでなく、応用問題みたいな知識の使い方を問う問題まで解けるように努力すべきだったorz

  • しばらく使ってみたが、だめだ .NETだとLOHにgap_vectorの内容が放り込まれる関係で、すぐに解放されない .NETだと別のデーター構造のほうが適してるようだ すく思いついたやつ、B+木やB*木...

    • 裏で行数カウントさせて完了するまで行ジャンプ禁止にしようぜ

      • それっぽい感じにしてるが、巨大ファイルを読み込んでから閉じるとメモリーが解放されないんだよ…。 どうも、gap_vectorに巨大ファイルを放り込むとLOHに放り込まれる。 LOHに放り込ま...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん