Emacsポイント(カーソル)の動きの遅れ


12

を実行しているときprevious-lineC-pまたは<up>カーソルが問題や遅延なしで行をジャンプします。を実行するときnext-lineC-nまたは<down>カーソルが行を適切にジャンプしますが、大幅に遅れます。下キーを押したままにすると、ポイントが移動するのが見えず、下のどこかに表示されます。Emacsプロファイラーを実行しましたが、犯人はそうですcl-position。うまくいくのは、previous-line文字通りカーソルを動かすだけで、next-line多くの機能を実行するということです。

プロファイラーの出力

問題は何ですか?どのように修正できますか?


使用していvisual-line-modeますか?非常に長い列がありますか?
ドリュー

私は使用visual-line-modeせず、長い列もありません。
ダミアンクルザノフスキ

回答:


22

いたずらビットを絞り込んでグーグルで質問に答えました。ラグを10倍に減らすことができました!!!! つまり... next-lineカーソルを下に移動するのにどれだけのコンピューティングパワーが使用されているのか、とてつもないことです。

修正:

このコードをinit.elに追加します。 (setq auto-window-vscroll nil)

の証拠:

ラグが大幅に減少

next-lineトリガーされませんline-move-partialので、タイムラグを低減することができます。私はセットアップ覚えていないauto-window-vscrollt。それはどこでも私の中ではなかった.el、私はそれがために設定されてしまったかわからない、ファイルtで開始します。そのため、カーソルの移動にパフォーマンスの問題がある場合、上記の修正によりラグが約50%-80%cpu時間から5%cpu時間に短縮されます!!!

影響を受けているかどうかをすばやく確認するには、単に実行しC-h v auto-window-vscrollます。設定されている場合、tパフォーマンスに大きな問題がある可能性があります。カーソルの移動が実際に遅延を引き起こすかどうかをEmacsプロファイラーで確認します。

幸運な仲間のEmacs愛好家!!!

修正のソース


このためのEmacsバグ(または機能拡張リクエスト)の提出を検討してくださいM-x report-emacs-bug
ドリュー

2
私はこれが多くの人々にとって問題であるとわかるように、します。
ダミアンChrzanowski

1
おかげで、ダミアン、パフォーマンスは向上しますが、まだ少し反応が
鈍く

3

何が問題なのかは絶対にわかりませんが、プロファイラーレポートは、posn-at-pointが予想よりも多くの再表示を実行していることを示しているようです。モードラインの計算。

IOW、私はあなたを提案しますM-x report-emacs-bug、そして、あなたは電力線維持管理者にバグを報告するかもしれません。


0

電力線を使用しているようです。特に、モードラインに発射物のプロジェクト名が表示されます。最近、発射物パッケージにいくつかの改良が加えられ、それらのいくつかが緩和されました。最新であることを確認してください。

https://github.com/bbatsov/projectile/issues/1212

https://github.com/bbatsov/projectile/pull/1213

モードラインが呼び出す関数をメモすることもできます。これを非常に高速にするために、モードラインでこれをたくさん行いました。


問題はすでに解決されており、発射体または電力線は問題ではありませんでした
ダミアンクルザノフスキ

ソートしてくれてうれしいです。あなたのプロファイルは、発射体によるスローダウンを示していました。auto-window-vscrollをnilに設定すると、emacsが不要なモードライン計算をスキップするだけの場合があります。とにかく、並べ替えてくれてうれしいです!
アーロンジェンセン

それは良い点です。どのパッケージが問題であるかを確認する時間がありませんでした。提案をありがとう!
ダミアンChrzanowski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.