Comment accélérer la génération d'agenda en mode organisationnel

11

Il faut plusieurs secondes au mode org d'Emacs pour générer mon agenda. Comment puis-je le rendre plus rapide? J'utilise déjà des fichiers d'archive et j'ai moins de 30 .orgfichiers, tous assez courts.

Sortie du profileur partiel de la org-agendacommande:

+ ...                                                              93  50%
- command-execute                                                  90  49%
 - call-interactively                                              85  46%
  - org-agenda                                                     80  43%
   - byte-code                                                     80  43%
    - call-interactively                                           79  43%
     - org-agenda-list                                             79  43%
      - byte-code                                                  79  43%
       - org-agenda-prepare                                        68  37%
        - org-agenda-prepare-buffers                               67  36%
         - byte-code                                               67  36%
          - org-get-agenda-file-buffer                             67  36%
           - find-file-noselect                                    67  36%
            - find-file-noselect-1                                 67  36%
             - after-find-file                                     66  36%
              + run-hooks                                          35  19%
              + normal-mode                                        30  16%
              + auto-save-mode                                      1   0%
             + normal-backup-enable-predicate                       1   0%
        + org-agenda-files                                          1   0%
       + byte-code                                                 10   5%
         org-days-to-iso-week                                       1   0%
    + org-agenda-get-restriction-and-command                        1   0%   
  + byte-code                                                       4   2%   
  + minibuffer-complete                                             1   0%
Matthew Piziak
la source
Il semble que le mode org gaspille beaucoup de temps à ouvrir les fichiers. Vous pourriez voir des améliorations si vous gardez ces tampons toujours ouverts.
Malabarba

Réponses:

9

J'ai créé cette solution de contournement, qui génère un tampon d'agenda chaque fois qu'Emacs est inactif pendant plus de 5 secondes. La prochaine fois que la commande agenda sera exécutée, la génération prendra moins d'une seconde, car les tampons d'organisation ont déjà été chargés.

(run-with-idle-timer 5 nil (lambda () (org-agenda-list) (delete-window)))
Matthew Piziak
la source
6

Pas tout à fait une réponse à votre question, mais réfléchissez (setq org-agenda-sticky t). Cela fait que la qcommande enterre le tampon d'agenda lorsque vous en avez terminé, plutôt que de le fermer.

Le résultat est que l'ordre du jour réapparaîtra immédiatement lors de votre prochaine demande, mais il n'aura pas été mis à jour depuis votre dernière visite. Si vous souhaitez le mettre à jour, vous pouvez toujours appuyer gsur l'agenda pour le reconstruire correctement.

Stuart Hickinbottom
la source