Saya sedang menulis dokumen dan saya memiliki masalah dengan kinerja Emacs yang saya pikir baru muncul kemarin. Saya belum membuat perubahan pada file init saya atau menginstal paket baru.
Masalahnya adalah ketika saya sedang menulis, ada jeda yang sangat mencolok antara menekan huruf-huruf pada keyboard dan membuatnya muncul di layar. Terkadang saya melihat mereka masih mencetak di layar setelah saya selesai mengetik kata.
Saya tidak tahu apakah ada masalah lain selain kecepatan mengetik (saya hanya bisa menebak bahwa ada) tetapi saya belum menyadarinya.
Apa yang bisa menyebabkan masalah ini?
Apakah itu disebabkan oleh Emacs atau karena kinerja pc saya? Secara umum apa saja variabel yang mempengaruhi kinerja Emacs?
Versi My Emacs adalah GNU Emacs 24.3.1
Mode aktif utama adalah:
- Getah
dan mode minor aktif adalah:
- Lengkap Otomatis
- Komposisi Otomatis
- Kompresi Otomatis
- Enkripsi Otomatis
- Kedip-Kursor
- File-Nama-Shadow
- Font-Lock
- Global-Otomatis-Lengkap
- Global-Font-Lock Global-Hl-Line
- Line-Number
- Roda mouse
- Shell-Dirtrack
- Show-Paren
- Smartparens
- Smartparens-Global
- Tooltip Transient-Mark
sumber
C-h m
akan mengungkapkan mode utama dan semua mode minor yang aktif. Anda dapat secara perlahan menonaktifkan setiap mode minor hingga melacak penyebabnya. Ini bisa menjadi mode utama itu sendiri, tetapi mode minor adalah yang paling mungkin tersangka. Tanpa menentukan mode mana yang Anda gunakan, siapa pun di sini hanya akan menusuk dalam gelap apa yang terjadi dengan masalah Anda. Saya memiliki situasi langka yang terjadi pada beberapa gambar khusus - misalnya, ketika seseorang mengirimi saya sesuatu dengan simbol telepon atau simbol khusus lainnya di iPhone - tetapi itu adalah masalah pelambatan terisolasi yang disebabkan oleh simbol khusus.linum-mode
memperlambat kinerja buffer besar.nlinum-mode
ditulis oleh Stefan lebih baik untuk buffer yang lebih besar.Jawaban:
Emacs memiliki sekitar 50.000 variabel internal dan beberapa ribu paket eksternal rata-rata pada beberapa variabel masing-masing, Anda tidak dapat mengharapkan seseorang untuk menjawab ini secara umum. :-)
Anda dapat melihatnya hanya dengan melihat komentar di bawah pertanyaan Anda. Ada setengah lusin saran berbeda di sana, semuanya sama-sama valid.
Apa yang dapat Anda lakukan untuk menunjukkan masalah?
Opsi 1: Nonaktifkan mode
Mulailah menonaktifkan mode-mode minor yang Anda daftarkan, dan lihat mana yang memecahkan masalah kinerja Anda. Saya akan mulai dengan
smartparens
,auto-complete
,line-number
danfont-lock
, kemudian ikuti bawah daftar."Saya tidak memiliki masalah ini kemarin" artinya sangat sedikit, jangan terlalu bergantung padanya . Mulailah menonaktifkan mode kecil hingga sesuatu menyelesaikannya.
Jika tidak ada mode minor yang memperbaiki masalah Anda, maka mulailah mengomentari sebagian dari file init Anda sampai Anda mengetahui snippet mana yang menyebabkan ini. Dalam kasus apa pun, ajukan pertanyaan baru ketika Anda memiliki sesuatu yang lebih spesifik.
Opsi 2: Profiler
M-x profiler-start RET RET
(yang keduaRET
adalah untuk mengkonfirmasicpu
);M-x profiler-report
.Itu akan memberi Anda buffer yang menggambarkan waktu cpu yang diambil oleh masing-masing fungsi. Menekan
TAB
garis akan memperluasnya untuk menampilkan fungsi di dalamnya. Arahkan buffer ini hingga Anda mengetahui fungsi mana yang menghabiskan banyak waktu CPU.Apa yang harus saya lakukan setelahnya?
Setelah Anda menemukan fungsi atau paket atau snipet yang menyebabkan lag Anda dapat (tanpa urutan tertentu):
M-x PACKAGE-bug-report
.M-x report-emacs-bug
.help-gnu-emacs
milis.sumber