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) происходит перед фактической записью на диск.

Среди прочего, это даст вам лучшее понимание того, что происходит и почему.

Другие вопросы по тегам