batas praktis pada ukuran file mode-org?


13

Saya memiliki file mode-org yang berjalan di sekitar 6.000 baris dengan seratus atau lebih tajuk utama. Itu mulai memakan waktu sekitar satu menit untuk memuat atau menyimpan, dan kadang-kadang mengirimkan emacs ke gulma dan saya harus keluar secara paksa.

Apakah ada di antara Anda yang menganggap ini file yang terlalu besar untuk ditangani secara praktis dalam mode-org? Apakah Anda memiliki pengalaman dengan file yang lebih besar? Apakah Anda mengalami penundaan yang sama? Atau haruskah saya mencari penyebab keterlambatan, seperti semua paket emacs lainnya yang telah saya instal? Mungkin saya hanya meminta terlalu banyak emacs secara umum.

Ini dengan emacs homebrew 24.4 di Mac OS X Mavericks.


2
Apakah Anda menggunakan sesuatu yang lain bersamanya linum-mode? Mode minor khusus apa yang aktif (jika ada)?
hukum

Saya punya terlalu banyak untuk dicantumkan ... Saya mulai dengan emacs-live (kotak alat clojure) dan telah dengan sembarangan memuat setiap paket yang tampak menarik yang dapat saya temukan di elpa dan marmalade. Saya akan melakukan tes dengan instalasi emacs telanjang; jika org-mode berfungsi ok maka saya akan mulai membagi dua paket saya. Mungkin saat yang tepat untuk memulai.
Reb.Cabin

2
File ini tidak terlalu besar untuk ditangani. Saya memiliki pengalaman dengan file baris 7000 github.com/grettke/home/blob/master/ALEC.org dan sangat sedikit judul. Saya tidak mengalami pemuatan atau menghemat kelambatan. Saya menjadi lambat ketika saya tumbang sehingga saya lari #+STARTUP: showeverything. Anda memiliki Emacs terbaru yang hadir dengan mode-org terbaru. Mulai Emacs dengan emacs -Qdan perlahan tambahkan kembali paket untuk mempersempit paket menyinggung memperlambat segalanya. Saya di "24.4.1" dan "8.2.10" emacs dan org.
grettke

Jawaban:


18

Salah satu fitur yang kurang dikenal dari Emacs adalah ia memiliki profiler! Mari kita asumsikan file Anda dipanggil foo.org, maka Anda bisa melakukan ini:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Setelah Anda melakukan semua itu, Emacs akan memunculkan buffer dengan statistik penggunaan CPU (Anda juga dapat memilih memori profil atau CPU dan memori, saat Anda memulai profiler). Ini akan memberi Anda beberapa petunjuk tentang fungsi apa yang paling memakan waktu untuk dieksekusi.


Tampaknya jika buffer saya memiliki lebih dari 7k baris, ia memiliki jeda yang sangat panjang. Apakah Anda tahu mengapa demikian?
user8128167

@ user89861 Tebakan pertama saya adalah fontifikasi, tetapi tanpa mencoba profil, sulit untuk mengatakannya.
wvxvw

OK, inilah yang saya dapatkan untuk laporan profiler: + timer-event-handler 408694 96% + perintah-jalankan 14634 3% + ... 1480 0% + redisplay_internal (fungsi C) 183 0% + isearch-pre-command -hook 1 0%
user8128167

@ user89861 lihat apakah salah satu dari dua variabel ini: stackoverflow.com/a/11670718/5691066 akan memberi Anda petunjuk tentang apa timer itu berjalan.
wvxvw

3

Saya menghapus setiap paket dari lingkungan emacs saya, dan sekarang mode-org berjalan dengan baik pada file 6.000 baris saya.

Beberapa hal lain yang saya muat menyebabkan masalah. Saya harus membagi dua instalasi paket saya untuk mencari tahu apa itu, tetapi mode-org tampaknya baik-baik saja sekarang.


Melakukan instalasi baru emacs-live - itu tidak menyebabkan masalah.
Reb.Cabin

Jika pertanyaan Anda dijawab dengan memuaskan dan Anda tidak memerlukan jawaban tambahan, harap pertimbangkan untuk menerima jawaban Anda, sehingga ini dihapus dari daftar pertanyaan yang tidak terjawab.
Drew

@Drew - Ada masa tunggu untuk menerima jawaban sendiri - kira-kira 36 atau 48 jam.
hukum

1
@lawlist: Oke. Tetapi tidak ada daftar tunggu untuk memikirkan apakah Anda mungkin hanya ingin menghapus pertanyaan karena T&J mungkin tidak begitu membantu / menarik. ;-)
Drew

3
pertanyaan itu menggali titik menarik tentang profiler, jadi pertanyaannya memiliki efek samping yang bermanfaat :)
Reb.Cabin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.