limites práticos no tamanho do arquivo no modo organizacional?


13

Eu tenho um arquivo de modo organizacional que está executando cerca de 6.000 linhas com uma centena de títulos de nível superior. Começou a demorar cerca de um minuto para carregar ou salvar, e ocasionalmente envia emacs para as ervas daninhas e eu tenho que forçá-lo a sair.

Algum de vocês acha que esse arquivo é muito grande para ser manuseado praticamente no modo organizacional? Você tem experiência com arquivos maiores? Você experimenta os mesmos tipos de atrasos? Ou devo procurar em outro lugar as causas da lentidão, como todos os outros pacotes emacs que instalei? Talvez eu esteja apenas pedindo muito do emacs em geral.

Isso ocorre com o homebrew emacs 24.4 no Mac OS X Mavericks.


2
Você está usando algo mais junto com isso, como linum-mode? Quais outros modos secundários especiais estão ativos (se houver)?
lawlist

Eu tenho muitos para listar ... Comecei com o emacs-live (a caixa de ferramentas clojure) e carreguei promiscuamente todos os pacotes de aparência interessante que encontrei no elpa e na marmelada. Vou fazer um teste com uma instalação do emacs; se o modo org funcionar bem, começarei a dividir meus pacotes. Pode ser um bom momento para começar de novo.
amigos estão dizendo sobre rebecca

2
Este arquivo não é muito grande para manipular. Tenho experiência com um arquivo de linha 7000 github.com/grettke/home/blob/master/ALEC.org e muito poucos títulos. Não experimente carregar ou salvar a lentidão. Fico mais devagar quando recolho os títulos e corro com ele #+STARTUP: showeverything. Você tem o Emacs mais recente, que vem com o mais novo modo organizacional. Inicie o Emacs com emacs -Qe adicione lentamente os pacotes para reduzir o pacote ofensivo, tornando as coisas mais lentas. Estou no emacs e org "24.4.1" e "8.2.10".
grettke

Respostas:


18

Um dos recursos menos conhecidos do Emacs é que ele possui um criador de perfil! Vamos supor que seu arquivo seja chamado foo.org, então você pode fazer isso:

M-xprofiler-start

C-x ffoo.org

M-xprofiler-report

Depois de fazer tudo isso, o Emacs exibirá um buffer com estatísticas sobre o uso da CPU (você também pode escolher o perfil da memória ou da CPU e da memória quando iniciar o criador de perfil). Isso deve fornecer algumas dicas sobre quais funções levam mais tempo para serem executadas.


Parece que, se meu buffer tiver mais de 7k linhas, haverá tremendas pausas. Você sabe por que isso é assim?
user8128167

@ user89861 Meu primeiro palpite seria a fonte, mas sem tentar criar um perfil, é difícil dizer.
Wvxvw 07/09/16

OK, é o que recebo de um relatório do criador de perfil: + timer-handler 408694 96% + command-execute 14634 3% + ... 1480 0% + redisplay_internal (função C) 183 0% + isearch-pre-command -Gancho 1 0%
user8128167

@ user89861 veja se alguma destas duas variáveis: stackoverflow.com/a/11670718/5691066 lhe dará uma dica de qual cronômetro estava sendo executado.
Wvxvw 09/09/16

3

Tirei todos os pacotes do meu ambiente emacs e agora o modo org roda bem no meu arquivo de 6.000 linhas.

Outra coisa que eu carreguei estava causando o problema. Vou ter que dividir minhas instalações de pacotes para descobrir o que é, mas o modo organizacional parece bom agora.


Fiz uma nova instalação do emacs-live - que não estava causando os problemas.
amigos estão dizendo sobre rebecca

Se sua pergunta foi respondida satisfatoriamente e você não precisa de respostas adicionais, considere aceitá-la, para que isso seja removido da lista de perguntas não respondidas.
Tirou

@ Drew - Há um período de espera para aceitar a própria resposta - algo como 36 ou 48 horas.
lawlist

1
@lawlist: OK. Mas não há lista de espera para pensar se você deseja excluir a pergunta, pois as perguntas e respostas podem não ser tão úteis / interessantes. ;-)
Drew

3
a questão desenterraram o ponto interessante sobre o Profiler, então a questão tinha um lado / efeito útil :)
Reb.Cabin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.