CEDET Semantic Analyzer довольно медленный в других быстрых системах

Моя тестовая установка: Intel Dual Core 3GHz, 32-битная Windows XP, Emacs 23.2.1, CEDET v1.0 (скомпилирована как описано в документах INSTALL).

Файл инициализации Emacs состоит только из этих четырех строк:

(load "~/vendor/cedet/common/cedet.el")
(semantic-load-enable-code-helpers)
(require 'semantic-ia)
(global-ede-mode 1)

При открытии файла C++, который включает в себя только одну функцию, завершение этой функции с помощью (semantic-ia-complete-symbol) заканчивается только после заметного лага, даже после повторных попыток.

Оценка semantic-analyze-current-context показывает, что медлительность вызвана семантическим анализатором.

Вот файл результатов ELP после запуска semantic-elp-analyze несколько раз, без изменения точки в буфере. Общее прошедшее время всегда составляет около 0,6 секунд.

Когда я добавляю оператор включения, как #include <stdio.h>время меняется на 2,5 секунды. Вот соответствующий результат ELP.

В моей среде linux одни и те же тесты никогда не занимают больше 0,1 секунды. (То же оборудование, Debian 23.1 Emacs, CEDET v1.0)

Есть идеи, что может быть не так с моей настройкой?

1 ответ

Решение

Оказалось, что компиляция CEDET вызвала кучу ошибок, которые я сначала не заметил:

semantic-analyze.el:178:1:Error: Symbol's value as variable is void: filename

Что вызвало замедление, оставив 81 файл без компиляции.

Google предполагает, что эта ошибка может быть связана с версиями Emacs, более новыми, чем 23.1.

Если вы используете cedet-build.el для компиляции CEDET, попробуйте следующий обходной путь:

Add (setq filename nil) to the beginning of cedet-build.el
Другие вопросы по тегам