2016-11-24 12 views
2

My Emacs (GNU Emacs 25.1.1 (x86_64-w64-mingw32) под Windows 10 64-бит) стал необычно медленным и изменчивым, особенно в Org-режиме, например. может остановиться на 2 + секунды, чтобы переместить курсор и 3 + секунды для обновления, чтобы показать расширенное дерево.Диагностика Emacs: Org-режим невыносимо медленный и часто киосков

Основываясь на моем отчете о контроле-инициализации, я выполнил некоторые сокращения, обрезая содержимое в моем .emacs, чтобы уменьшить требования и инструкции загрузки, заменив их на автозагрузку или нагрузку после eval.

Я также подготовил несколько отчетов-профилировщиков, некоторые из результатов выглядят мне трудными для интерпретации (например, «line-move-visual» использует много памяти), и я не знаю, какие пакеты некоторые из них процессы ниже и как настроить и внести изменения для повышения производительности. Ниже представлен частично расширенный вывод для отчета профилировщика (mem + cpu), при работе над файлом .org с примерно 1500 строк, спасибо заранее!

(work.org at ~1500 lines) 
- command-execute           259,247,035 98% 
- call-interactively          259,247,035 98% 
    - funcall-interactively         259,142,758 98% 
    - previous-line          203,846,889 77% 
    - line-move           203,846,889 77% 
    - line-move-visual         92,655,384 35% 
     - posn-at-point           3,520 0% 
     file-remote-p           3,520 0% 
     window-inside-pixel-edges        12,844 0% 
    - org-cycle            46,120,698 17% 
    - org-cycle-internal-local        45,429,666 17% 
    - run-hook-with-args         45,176,010 17% 
     - org-optimize-window-after-visibility-change  41,890,667 15% 
     - org-subtree-end-visible-p       41,862,858 15% 
     - pos-visible-in-window-p       2,111,314 0% 
     - jit-lock-function         153,338 0% 
      - jit-lock-fontify-now        150,304 0% 
      - jit-lock--run-functions       135,144 0% 
      - run-hook-wrapped        135,144 0% 
      + #<compiled 0x2c09399>       135,144 0% 
      #<compiled 0x2cf3709>        15,160 0% 
      file-remote-p          18,898 0% 
     + eval             1,056 0% 
      org-end-of-subtree         1,056 0% 
     + recenter            21,840 0% 
     + org-cycle-hide-archived-subtrees      47,260 0% 
     org-cycle-show-empty-lines        9,232 0% 
     + org-cycle-hide-drawers         2,936 0% 
    + org-show-children          12,456 0% 
     outline-next-heading          5,120 0% 
    + org-show-entry           1,776 0% 
    + outline-flag-region          1,520 0% 
    + org-hide-block-toggle-maybe        114,356 0% 
    + run-hook-with-args-until-success       11,744 0% 
    + org-cycle-item-indentation        6,198 0% 
    + org-cycle-level           5,648 0% 
     org-at-table-p           5,312 0% 
    + execute-extended-command        8,947,699 3% 
    + next-line            227,472 0% 
    + byte-code             104,277 0% 
+ redisplay_internal (C function)       4,519,393 1% 
+ elscreen-run-screen-update-hook        17,698 0% 
    internal-timer-start-idle          8,137 0% 
+ timer-event-handler           2,000 0% 
+ eldoc-schedule-timer           1,056 0% 
    ...                0 0% 
+0

См. Эту тему, озаглавленную ** Новая (более быстрая) тестовая сборка Emacs 25.1 для Windows **: https://www.reddit.com/r/emacs/comments/5drxs6/new_faster_testbuild_of_emacs_251_for_windows/?st=ivwrzcgk&sh= c742163f – lawlist

+0

Я тоже должен это проверить. В настоящее время я использую сборку по zklhp по адресу https://github.com/zklhp/emacs-w64. Думал, что это будет не так уж плохо. – menuhin

+0

В прошлом я использовал пакет Emacs от Vincent Goulet, но после «обновления» с Emacs 24 до Emacs 25.1 возникли некоторые проблемы с производительностью. Поэтому я хотел попробовать больше, поскольку это 64-битная версия zklhp. – menuhin

ответ

2

Я не знаю, если это связано с вашим вопросом, но я также был чрезвычайно медленный orgmode на окнах, особенно при построении повестки дня.

Я узнал, что следующая строка решила, что для меня, при добавлении его в мои большом orgmode файлы:

#+STARTUP: showeverything 
+0

Это не очень помогает. Однако при запуске с -q org-mode происходит намного быстрее, но только добавленные фактические активные второстепенные режимы при нормальном запуске - это два (автоматический режим заполнения-режим-инструмент-режим). Непонятно, как именно эти два режима настолько снижают производительность. Будет ли больше факторов/скрытых режимов, влияющих на производительность? – menuhin

5

Я нашел пакет, который, вероятно, является основной причиной замедления Org-режим в мой Emacs.

Это пакет «org-bullets», который не обновлялся в течение 2+ лет.

Удалив инструкцию «require» и все последующие связанные настройки в моем файле .emacs, режим Org в моем Emacs возвращается к состоянию с полезной отзывчивостью.

+0

Хороший улов. org-bullets - большой фактор времени загрузки для моего 8000+ файла регистрации org_archive. Существование ящиков с 8000+ свойствами является другим большим фактором. Отключение org-bullets и удаление всех пар PROPERTIES/END (но оставление фактических строк свойств) делают загрузку большого файла мгновенно. –