-
Notifications
You must be signed in to change notification settings - Fork 167
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
CSVを開いた時の動作が重くなった(2.4.2リリース版) #1914
Comments
どれくらい遅くなってますか? 目安として「5秒以上かかるようなら要検討かなぁ」と。 自分の環境はこんなんです。
|
自分もCSVファイルをダウンロードして設定して読み込んでCSV表示してみたんですが、どこらへんの動作が重くなったのか良く分からないです。 |
Azure MonitorのtracesログをエクスポートしたCSVファイルを開いて試してみました。
確認した2件の事象はいずれも不具合のように見えますが、 |
9_koudohyou_rosen_kousokujidousya_jidousyasenyou.zip 9_koudohyou_rosen_kousokujidousya_jidousyasenyou.csv ファイルの列を複製して512列にしたcsvファイルを読んでみましたが、動作が重いという現象は確認出来ませんでした。 ただEndキーを押して行末に移動するとソフトが終了してしまう不具合を確認しました。デバッグして原因を調べてみると、 |
2.4.2のインストーラ版を使用していますが、CSV・TSVのファイルオープン、スクロールが極端に遅くなる現象がこちらでも発生しています。 |
デバッグしてみたところ、
|
範囲外参照は致命的ですね…。
sakura/sakura_core/view/CTextMetrics.cpp Line 65 in 9e8fa57
今週末まで私用で動けないので来週に解消PRを出します(先に動いてくださる方がいらっしゃれば急ぎでレビューします)。 |
63文字までしか想定してない関数に というツッコミをPR書いてしまう前に入れときます。 |
|
試しに |
ExtTextOutで幅を指定しないとプロポーショナルフォント使用時にCSVモードの桁が揃わなくなるのかな?と想像していました。問題がなさそうならNULL指定で対処するほうが良いですね。 |
なんとなく思っていること
これは一般的なオブジェクト指向設計の指針「単一責務の原則 Single Responsibility principal 」に反している気がします。 もっとも、サクラエディタは基本的にC言語で書かれたプログラムなので、オブジェクト指向言語の設計指針に従っていないからと言って一概に「誤りである」とも言えないような気はします。 で、どうするの?妥当性を検証できる回答は提示できません。 これまで通り「やりたい人がやりたいように提案する」で進めて行ったらよいと思います。 |
* CRuler::DrawRulerBg メソッドで nMaxLineKetas (10240) より keta の値が大きくなる為に結果的に負の値が size_t 型のローカル変数に代入され、極端に大きい値が std::vector::resize メソッドに渡されてしまう問題への対策を追加 * CFigure_Comma::DispSpace で ExtTextOut を呼び出す際に szViewString の文字数が 64 を超過すると pMetrics->GetDxArray_AllHankaku() で取得する領域の範囲外参照が発生する問題への対策を追加
問題内容
Ver2.4.2でCSVを開くと、それ以前の版と比べて動作が重くなりました
再現手順
添付画像の設定をしたあと、たとえば、こちらのCSVを開いてみます。
https://www.npa.go.jp/publications/statistics/koutsuu/opendata/koudohyou/9_koudohyou_rosen_kousokujidousya_jidousyasenyou.csv
再現頻度
カラム数が大きめのCSVで発生しているようです。
問題のカテゴリ
環境情報
Windows11 Pro x86
Ver. 2.4.2.6048
スクリーンショット
The text was updated successfully, but these errors were encountered: