Come posso accelerare la generazione dell'agenda in modalità org


11

Emacs org-mode impiega diversi secondi per generare la mia agenda. Come posso renderlo più veloce? Sto già utilizzando i file di archivio e ho meno di 30 .orgfile, tutti ragionevolmente brevi.

Output parziale del profiler del org-agendacomando:

+ ...                                                              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%

Sembra che la modalità org impieghi molto tempo ad aprire i file. Potresti notare miglioramenti se mantieni questi buffer sempre aperti.
Malabarba,

Risposte:


9

Ho creato questa soluzione alternativa, che genera un buffer agenda ogni volta che Emacs rimane inattivo per più di 5 secondi. Alla successiva esecuzione del comando agenda, la generazione richiede meno di un secondo, poiché i buffer dell'organizzazione sono già stati caricati.

(run-with-idle-timer 5 nil (lambda () (org-agenda-list) (delete-window)))

6

Non è proprio una risposta alla tua domanda, ma considera (setq org-agenda-sticky t). Questo rende il qcomando seppellire il buffer dell'agenda quando hai finito con esso, piuttosto che chiuderlo.

Il risultato di ciò è che l'agenda riapparirà immediatamente alla prossima richiesta, ma non sarà stata aggiornata dall'ultima volta che l'hai vista. Se lo desideri aggiornato, puoi sempre premere gnell'agenda per ricostruirlo correttamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.