Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

巨大なファイルを開く時の待ち時間を短くしたい #1988

Open
suconbu opened this issue Feb 8, 2025 · 0 comments
Open

巨大なファイルを開く時の待ち時間を短くしたい #1988

suconbu opened this issue Feb 8, 2025 · 0 comments

Comments

@suconbu
Copy link
Member

suconbu commented Feb 8, 2025

(必須) やりたいこと(=実現したいこと)

表題の通り、ファイルの読み込みを速くしたいです。

(PCスペック次第ですが) ファイルサイズが300MBを超えると開くまでに10秒弱ほど掛かってしまっていて、
感覚的にはこれが2~3秒ぐらいで開いてくれたらいいなと思っています。

例として、1,000,000行 (335MB) のテストファイル (1m_lies.zip) を開いた時の読み込み処理の時間内訳が以下です。

区間 時間 (ms)
A. CLoadAgent::OnLoad 開始から ReadFile_To_CDocLineMgr 完了まで 1526.136
B. そこから CLoadAgent::OnLoad 完了まで (レイアウトデータ化処理) 4269.241
C. CLoadAgent::OnAfterLoad 開始から完了まで 2665.548
合計 8460.925

※ サクラエディタ開発版(64bit) Ver. 2.4.2.6122 Local (85cb1bf)
※ CPU:Intel Core i7-1260P ストレージ:NVMe SSD
TIME_MEASURE 定義を有効化、一部ログ追加し計測

(省略可) 解決手段の提案

以下3段階に分けて処理の高速化を進めます。

  • 第1弾:各行の文字数のカウントを都合2回やっているのを1回にする (区間Cを速くする)
  • 第2弾:レイアウト化処理をマルチスレッド化する (区間Bを速くする)
  • 第3弾:ファイル読み込み処理をマルチスレッド化する (区間Aを速くする)

このうち第2弾と第3弾については、yoshinrt さんのフォーク yoshinrt/SakuraVz にて実施されている高速化対応を参考にしながら、
(少し遅くなったとしても) 対応によって機能制限や動作の変化がない、透過的な形での対応を目指します。

(省略可) スクリーンショット

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant