Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR の目的
下記の2つの変更を行う目的があります。
ファイル保存処理中のユーザーへの通知やメッセージループ回し(処理中のユーザー操作を可能にする)処理の呼び出しを、1024行間隔で行う方法から一定時間(33ミリ秒)間隔で行う方法に変更
ファイル保存処理後に呼び出す設定変更の反映呼び出し(CEditDoc::OnChangeSetting)は文書種別が変更になった時だけ行うように変更
カテゴリ
PR の背景
1行の文字数が少なく行数がやたらと多いファイルの場合(そんなファイルを日常的には扱わないので特殊なケースですが…)、1024行間隔で実行する方法だと必要以上に頻繁に処理が呼び出されてしまいます。UI更新は操作する人間向けの処理なので一定時間間隔で行う方法が良いと考えています。
設定変更の反映呼び出し(
CEditDoc::OnChangeSetting
)は色々な処理の呼び出しを行うので必要のないケースでは呼び出しをしない方が処理が軽くなります。CEditDoc::OnChangeSetting
から呼び出す処理の中でも特に処理が重くなりがちなのは、CLayoutMgr::SetLayoutInfo
経由で呼び出されるCLayoutMgr::_DoLayout
です。PR のメリット
ファイル保存時の処理が少し軽くなるケースが増えます。
PR のデメリット (トレードオフとかあれば)
いつもの事ですが判定記述が増えるとコード量が増えて可読性が下がってメンテナンスの難易度が上がります。コメントは入れていますが…。
保存時に文書種別が変更されていない場合でももしかしたら設定変更の反映呼び出しを行った方が良い場合があるかもしれないので(把握していない)その場合は不具合になります。
PR の影響範囲
ファイル保存時の処理
関連チケット
#1050