Emacs отвечает медленно: как профилировать?
Я иногда испытываю некоторые Emacs. Иногда emacs тратит очень много времени на сохранение файла. Я не совсем понял, почему и когда это происходит. Кажется, это происходит при использовании IPython и ropemacs.
Есть ли способ узнать, на что тратит время emacs? Обратите внимание, что emacs не отвечает во время "сохранения" файла.
Другой поток по профилированию Emacs не дал четкого решения.
Кто-нибудь может порекомендовать мне, какие шаги предпринять, чтобы выяснить, чем занят emacs. Как уже говорилось, это происходит при запуске оболочки ipython и когда я работаю с romamacs, чтобы связать себя с большим количеством кода. Или кто-нибудь знает о проблемах с этими пакетами? Или это проблема операционной системы? (У меня есть Ubuntu 11.10, Emacs 23.3.1, ipython 0.11)
2 ответа
Для обзора ваших вариантов профилирования, смотрите этот связанный вопрос; Вы можете использовать подсказки в моем ответе там, чтобы профилировать определенные пакеты, которые, как вы подозреваете, вызывают замедления.
Кто-то, без сомнения, даст вам совет по профилированию. Что бы я сделал лично, выяснил, какая функция запускает операцию сохранения, а затем использовал отладчик Emacs в точке, где начинается сохранение - либо добавьте (debug)
непосредственно перед общей операцией сохранения или использования M-x debug-on-entry
для функции, которая инициирует сохранение.
Я бы шагнул через отладчик (используя d и c), чтобы увидеть, сколько времени занимает этот шаг. Если бы мне приходилось угадывать вслепую, я бы предположил, что некоторый массаж / преобразование или проверка сохраняемых данных прикладного уровня (например, связанных с Python) происходит перед фактической записью на диск.
Среди прочего, это даст вам лучшее понимание того, что происходит и почему.