praktische Grenzen für die Dateigröße im Organisationsmodus?

13

Ich habe eine Datei im Organisationsmodus, die ungefähr 6.000 Zeilen mit etwa hundert Überschriften auf oberster Ebene enthält. Es dauert ungefähr eine Minute, bis es geladen oder gespeichert ist, und gelegentlich sendet es Emacs in das Unkraut, und ich muss es zwangsweise beenden.

Glauben Sie, dass dies eine zu große Datei ist, um sie praktisch im Organisationsmodus zu verarbeiten? Hast du Erfahrung mit größeren Dateien? Erleben Sie die gleichen Verzögerungen? Oder sollte ich anderswo nach den Ursachen der Langsamkeit suchen, wie bei allen anderen Emacs-Paketen, die ich installiert habe? Vielleicht frage ich nur zu viel von Emacs im Allgemeinen.

Dies ist mit Homebrew-Emacs 24.4 unter Mac OS X Mavericks möglich.

Reb.Cabin
quelle
2
Verwenden Sie etwas anderes mit, wie linum-mode? Welche anderen speziellen Nebenmodi sind aktiv (falls vorhanden)?
Gesetzesliste
Ich habe zu viele, um sie aufzulisten ... Ich habe mit Emacs-Live (der Clojure-Toolbox) angefangen und jedes interessant aussehende Paket, das ich in Elpa und Marmelade finden konnte, nach Belieben geladen. Ich werde einen Test mit einer nackten Emacs-Installation durchführen. Wenn der org-Modus funktioniert, fange ich an, meine Pakete zu halbieren. Könnte ein guter Zeitpunkt sein, um von vorne zu beginnen.
Reb.Cabin
2
Diese Datei ist nicht zu groß, um damit umzugehen. Ich habe Erfahrung mit einer 7000-Zeilen-Datei github.com/grettke/home/blob/master/ALEC.org und sehr wenigen Überschriften. Ich erlebe keine Last und speichere keine Langsamkeit. Ich werde langsamer, wenn ich Überschriften zusammenklappe, also laufe ich mit #+STARTUP: showeverything. Sie haben den neuesten Emacs, der mit dem neuesten Org-Modus geliefert wird. Starten Sie Emacs mit emacs -Qund fügen Sie langsam Pakete hinzu, um die Geschwindigkeit des Pakets zu verringern. Ich bin auf "24.4.1" und "8.2.10" Emacs und org.
Grettke

Antworten:

18

Eine der weniger bekannten Eigenschaften von Emacs ist, dass es einen Profiler hat! Nehmen wir an, Ihre Datei heißt foo.org, dann könnten Sie dies tun:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Nachdem Sie alles getan haben, öffnet Emacs einen Puffer mit Statistiken zur CPU-Auslastung (Sie können beim Starten des Profilers auch das Profilieren des Speichers oder sowohl der CPU als auch des Speichers auswählen). Dies sollte Ihnen einige Hinweise geben, für welche Funktionen die meiste Zeit zur Ausführung benötigt wird.

wvxvw
quelle
Es scheint, dass wenn mein Puffer mehr als 7k Zeilen hat, es enorm lange Pausen hat. Weißt du warum das so ist?
user8128167
@ user89861 Meine erste Vermutung wäre die Fontifizierung, aber ohne ein Profil zu erstellen, ist es schwer zu sagen.
wvxvw
OK, das bekomme ich für einen Profiler-Bericht: + Timer-Event-Handler 408694 96% + Befehlsausführung 14634 3% + ... 1480 0% + redisplay_internal (C-Funktion) 183 0% + isearch-pre-command -hook 1 0%
user8128167
@ user89861 Überprüfen Sie, ob eine dieser beiden Variablen: stackoverflow.com/a/11670718/5691066 einen Hinweis darauf gibt, welcher Timer ausgeführt wurde.
wvxvw
3

Ich habe jedes Paket aus meiner Emacs-Umgebung entfernt, und jetzt läuft der org-Modus in meiner Datei mit 6.000 Zeilen einwandfrei.

Eine andere Sache, die ich geladen hatte, verursachte das Problem. Ich muss meine Paketinstallationen halbieren, um herauszufinden, was es ist, aber der org-Modus scheint jetzt in Ordnung zu sein.

Reb.Cabin
quelle
Hab eine Neuinstallation von Emacs-Live gemacht - das hat die Probleme nicht verursacht.
Reb.Cabin
Wenn Ihre Frage zufriedenstellend beantwortet wurde und Sie keine weiteren Antworten benötigen, akzeptieren Sie bitte Ihre Antwort, damit diese aus der Liste der unbeantworteten Fragen entfernt wird.
Drew
@Drew - Es gibt eine Wartezeit, um die eigene Antwort zu akzeptieren - etwa 36 oder 48 Stunden.
Gesetzesliste
1
@lawlist: OK. Es gibt jedoch keine Warteliste, in der darüber nachgedacht wird, ob Sie die Frage einfach löschen möchten, da die Fragen und Antworten möglicherweise nicht so hilfreich / interessant sind. ;-)
Drew
3
Die Frage enthüllte den interessanten Punkt über den Profiler, so dass die Frage eine hilfreiche Nebenwirkung hatte :)
Reb.Cabin