praktyczne ograniczenia rozmiaru pliku w trybie org?

13

Mam plik w trybie organizacji, który działa około 6000 wierszy i zawiera około stu nagłówków najwyższego poziomu. Załadowanie lub zapisanie trwało około minuty, a czasami wysyła emacsa do chwastów i muszę go wymusić.

Czy ktoś z was uważa, że ​​jest to zbyt duży plik, aby poradzić sobie praktycznie w trybie org? Czy masz doświadczenie z większymi plikami? Czy doświadczasz takich samych opóźnień? A może powinienem szukać gdzie indziej przyczyn spowolnienia, takich jak wszystkie inne pakiety emacsa, które zainstalowałem? Może w ogóle pytam za dużo emacsa.

Tak jest w przypadku homebrew emacs 24.4 na Mac OS X Mavericks.

Reb.Cabin
źródło
2
Czy używasz czegoś innego, na przykład linum-mode? Jakie inne specjalne tryby dodatkowe są aktywne (jeśli występują)?
prawnik
Mam zbyt wiele do listy ... Zacząłem od emacs-live (przybornika clojure) i obiecałem załadować każdy interesujący pakiet, który mogłem znaleźć w elpa i marmoladzie. Zamierzam zrobić test z samą instalacją emacsa; jeśli tryb org działa poprawnie, zacznę dzielić pakiety na części. Może to być dobry moment na rozpoczęcie od nowa.
Reb.Cabin
2
Ten plik nie jest zbyt duży do obsługi. Mam doświadczenie z plikiem linii 7000 github.com/grettke/home/blob/master/ALEC.org i bardzo małą liczbą nagłówków. Nie odczuwam obciążenia ani nie zapisuję powolności. Zwalniam, kiedy zwalniam nagłówki, więc biegnę #+STARTUP: showeverything. Masz najnowszą wersję Emacsa z najnowszym trybem org. Uruchom Emacsa za pomocą emacs -Qi powoli dodawaj pakiety z powrotem, aby zawęzić pakiet obrażający, spowalniając działanie. Używam emacs i org „24.4.1” i „8.2.10”.
grettke

Odpowiedzi:

18

Jedną z mniej znanych cech Emacsa jest to, że ma profiler! Załóżmy, że plik się nazywa foo.org, a następnie możesz to zrobić:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Po wykonaniu wszystkich tych zadań Emacs wyświetli bufor ze statystykami użycia procesora (możesz także wybrać profilowanie pamięci lub zarówno procesora, jak i pamięci po uruchomieniu profilera). To powinno dać ci wskazówki, które funkcje zajmują najwięcej czasu.

wvxvw
źródło
Wygląda na to, że jeśli mój bufor ma więcej niż 7 tys. Linii, ma niezwykle długie przerwy. Czy wiesz dlaczego tak jest?
user8128167
@ user89861 Moim pierwszym przypuszczeniem jest czcionka, ale bez próby profilowania trudno powiedzieć.
wvxvw,
OK, oto, co dostaję dla raportu profilera: + timer-event-handler 408694 96% + Command-execute 14634 3% + ... 1480 0% + redisplay_internal (funkcja C) 183 0% + isearch-pre-command -hook 1 0%
8128167
@ user89861 sprawdź, czy którakolwiek z tych dwóch zmiennych: stackoverflow.com/a/11670718/5691066 podpowie Ci, który zegar był uruchomiony.
wvxvw 9.09.16
3

Usunąłem każdy pakiet ze środowiska emacs, a teraz tryb org działa dobrze na moim pliku 6000-wierszowym.

Inna sprawa, którą załadowałem, spowodowała problem. Będę musiał podzielić instalacje mojego pakietu, aby dowiedzieć się, co to jest, ale tryb org wydaje się teraz w porządku.

Reb.Cabin
źródło
Zrobiłem nową instalację emacs-live - to nie spowodowało problemów.
Reb.Cabin
Jeśli odpowiedź na twoje pytanie jest zadowalająca i nie potrzebujesz dodatkowych odpowiedzi, rozważ zaakceptowanie swojej odpowiedzi, aby została ona usunięta z listy pytań bez odpowiedzi.
Drew,
@Drew - Jest czas oczekiwania na zaakceptowanie własnej odpowiedzi - około 36 lub 48 godzin.
prawnik
1
@lawlist: OK. Ale nie ma listy oczekujących na przemyślenie, czy możesz po prostu usunąć pytanie, ponieważ pytania i odpowiedzi mogą nie być tak pomocne / interesujące. ;-)
Drew,
3
pytanie ujawniło interesujący punkt na temat profilera, więc pytanie miało pomocną stronę / efekt :)
Reb.Cabin