límites prácticos en el tamaño del archivo de modo org?


13

Tengo un archivo de modo org que ejecuta alrededor de 6,000 líneas con un centenar de titulares de nivel superior. Comenzó a tomar alrededor de un minuto cargar o guardar, y ocasionalmente envía emacs a las malezas y tengo que abandonarlo por la fuerza.

¿Alguno de ustedes piensa que este es un archivo demasiado grande para manejar prácticamente en modo org? ¿Tienes experiencia con archivos más grandes? ¿Experimenta los mismos tipos de demoras? ¿O debería buscar en otras partes las causas de la lentitud, como todos los demás paquetes de emacs que he instalado? Tal vez solo le pido demasiado a emacs en general.

Esto es con homebrew emacs 24.4 en Mac OS X Mavericks.


2
¿Estás usando algo más junto con eso linum-mode? ¿Qué otros modos menores especiales están activos (si los hay)?
ley

Tengo demasiados para enumerar ... Comencé con emacs-live (la caja de herramientas de clojure) y he cargado de manera promiscua todos los paquetes de aspecto interesante que pude encontrar en elpa y mermelada. Voy a hacer una prueba con una instalación simple de emacs; si org-mode funciona bien, comenzaré a dividir mis paquetes. Puede ser un buen momento para comenzar de nuevo.
Reb.Cabin

2
Este archivo no es demasiado grande para manejar. Tengo experiencia con un archivo de línea 7000 github.com/grettke/home/blob/master/ALEC.org y muy pocos encabezados. No experimento cargar ni guardar lentitud. Me detengo cuando colapso los encabezados, así que corro con #+STARTUP: showeverything. Tiene el Emacs más nuevo que viene con el modo org más nuevo. Inicie Emacs con emacs -Qy agregue lentamente paquetes para reducir el paquete ofensivo que ralentiza las cosas. Estoy en "24.4.1" y "8.2.10" emacs y org.
grettke

Respuestas:


18

¡Una de las características menos conocidas de Emacs es que tiene un generador de perfiles! Supongamos que se llama a su archivo foo.org, entonces podría hacer esto:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Después de que haya hecho todo eso, Emacs abrirá un búfer con estadísticas sobre el uso de la CPU (también puede elegir perfilar la memoria o tanto la CPU como la memoria, cuando inicie el generador de perfiles). Esto debería darle algunas pistas sobre qué funciones tardan más en ejecutarse.


Parece que si mi búfer tiene más de 7k líneas, tiene pausas tremendamente largas. ¿Sabes por qué es así?
user8128167

@ user89861 Mi primera suposición sería la fuente, pero sin tratar de perfilar es difícil saberlo.
wvxvw

De acuerdo, esto es lo que obtengo para un informe del generador de perfiles: + timer-event-handler 408694 96% + command-execute 14634 3% + ... 1480 0% + redisplay_internal (función C) 183 0% + isearch-pre-command -hook 1 0%
user8128167

@ user89861 vea si alguna de estas dos variables: stackoverflow.com/a/11670718/5691066 le dará una pista sobre qué temporizador estaba ejecutando.
wvxvw

3

Eliminé todos los paquetes de mi entorno emacs, y ahora el modo org funciona bien en mi archivo de 6,000 líneas.

Otra cosa que había cargado estaba causando el problema. Tendré que dividir las instalaciones de mi paquete para descubrir qué es, pero el modo org parece estar bien ahora.


Hice una nueva instalación de emacs-live, eso no estaba causando los problemas.
Reb.Cabin

Si su pregunta fue respondida satisfactoriamente y no necesita respuestas adicionales, considere aceptar su respuesta, para que esto se elimine de la lista de preguntas sin respuesta.
Dibujó el

@Drew: hay un período de espera para aceptar la propia respuesta, algo así como 36 o 48 horas.
leyes

1
@lawlist: OK. Pero no hay una lista de espera para pensar si es posible que desee eliminar la pregunta porque las preguntas y respuestas pueden no ser tan útiles / interesantes. ;-)
Drew

3
la pregunta descubrió el punto interesante sobre el generador de perfiles, por lo que la pregunta tuvo un efecto secundario útil :)
Reb.Cabin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.