limites pratiques sur la taille des fichiers en mode org?

13

J'ai un fichier en mode organisation qui comporte environ 6 000 lignes avec une centaine de titres de haut niveau. Cela a commencé à prendre environ une minute pour charger ou enregistrer, et parfois il envoie des emacs dans les mauvaises herbes et je dois le forcer à le quitter.

L'un d'entre vous pense-t-il que ce fichier est trop volumineux pour être géré pratiquement en mode org? Avez-vous de l'expérience avec des fichiers plus gros? Connaissez-vous les mêmes types de retards? Ou devrais-je chercher ailleurs les causes de la lenteur, comme tous les autres packages emacs que j'ai installés? Peut-être que je demande simplement trop d'emacs en général.

C'est avec homebrew emacs 24.4 sur Mac OS X Mavericks.

Reb.Cabin
la source
2
Utilisez-vous autre chose avec lui, comme linum-mode? Quels autres modes mineurs spéciaux sont actifs (le cas échéant)?
lawlist
J'en ai trop pour les énumérer ... J'ai commencé avec emacs-live (la boîte à outils clojure) et j'ai promiscuquement chargé tous les paquets intéressants que je pouvais trouver dans elpa et marmalade. Je vais faire un test avec une installation d'emacs nue; si le mode org fonctionne correctement, je vais commencer à bissecter mes packages. Ce pourrait être le bon moment pour recommencer.
Cabine Reb
2
Ce fichier n'est pas trop volumineux à gérer. J'ai de l'expérience avec un fichier de 7 000 lignes github.com/grettke/home/blob/master/ALEC.org et très peu de rubriques. Je ne ressens pas de charge ni de lenteur. Je ralentis lorsque je réduis les titres, donc je cours avec #+STARTUP: showeverything. Vous avez le plus récent Emacs qui vient avec le dernier mode org. Démarrez Emacs avec emacs -Qet ajoutez lentement des packages pour réduire le package incriminé, ce qui ralentit les choses. Je suis sur "24.4.1" et "8.2.10" emacs et org.
grettke

Réponses:

18

L'une des caractéristiques les moins connues d'Emacs est qu'il dispose d'un profileur! Supposons que votre fichier soit appelé foo.org, vous pouvez alors faire ceci:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Après avoir fait tout ce que Emacs affichera un tampon avec des statistiques sur l'utilisation du processeur (vous pouvez également choisir de profiler la mémoire ou le processeur et la mémoire, lorsque vous démarrez le profileur). Cela devrait vous donner quelques indices sur les fonctions qui prennent le plus de temps à exécuter.

wvxvw
la source
Il semble que si mon tampon a plus de 7k lignes, il a des pauses extrêmement longues. Savez-vous pourquoi il en est ainsi?
user8128167
@ user89861 Ma première supposition serait la fontification, mais sans essayer de profiler c'est difficile à dire.
wvxvw
OK, voici ce que j'obtiens pour un rapport de profileur: + timer-event-handler 408694 96% + command-execute 14634 3% + ... 1480 0% + redisplay_internal (fonction C) 183 0% + isearch-pre-command -hook 1 0%
user8128167
@ user89861 voyez si l'une de ces deux variables: stackoverflow.com/a/11670718/5691066 vous donnera un indice sur le minuteur qu'il exécutait.
wvxvw
3

J'ai supprimé tous les packages de mon environnement emacs, et maintenant le mode org fonctionne bien sur mon fichier de 6 000 lignes.

Une autre chose que j'avais chargée était à l'origine du problème. Je vais devoir diviser les installations de mes packages pour comprendre de quoi il s'agit, mais le mode org semble bien maintenant.

Reb.Cabin
la source
Une nouvelle installation d'emacs-live a-t-elle causé les problèmes?
Reb.Cabin
Si votre question a reçu une réponse satisfaisante et que vous n'avez pas besoin de réponses supplémentaires, veuillez envisager d'accepter votre réponse, afin qu'elle soit supprimée de la liste des questions sans réponse.
Drew
@Drew - Il y a une période d'attente pour accepter sa propre réponse - quelque chose comme 36 ou 48 heures.
lawlist
1
@lawlist: OK. Mais il n'y a pas de liste d'attente pour savoir si vous voudrez peut-être simplement supprimer la question, car les questions et réponses pourraient ne pas être si utiles / intéressantes. ;-)
Drew
3
la question a mis au jour le point intéressant sur le profileur, donc la question a eu un effet secondaire utile :)
Reb.Cabin