Gtags очень медленно в Emacs

Я использую gnu global в emacs, все в порядке, но поиск команды "gtags-find-tag" слишком медленный, который не выдерживает. только эта команда очень медленная, остальные вроде "gtags-find-rtag" нормальны я думаю. Я удаляю другой конфиг, такой как cedet, чтобы исключить этот эффект, но эта проблема все еще существует. Я пропускаю некоторые шаги конфигурации глобальных или emacs? или кто-нибудь на другой платформе (linux) имеет эту проблему?

===
мой Emacs - это emacs для Mac OSX, версия 24.3, GNU global - 6.2.8, а мой файл конфигурации -

(add-to-list 'load-path (expand-file-name "~/.emacs.d"))
(setq load-path (cons "/Users/xxx/.emacs.d/gtags.el" load-path))
(autoload 'gtags-mode "gtags" "" t)
(add-hook 'c-mode-hook
   (lambda ()
     (gtags-mode t)
   ))

1 ответ

Решение

Я не использую Global (у меня есть смысл попробовать), но, глядя на код, gtags-find-tag а также gtags-find-rtag очень похожие функции.

Я полагаю, что разница должна быть либо в фазе завершения чтения, либо в фазе поиска, которые оба вызывают Global.

В завершающем чтении gtags передает опцию -cпока проходит "гртагс" -cr

На этапе поиска проходит gtags. -xпока проходит "гртагс" -xr,

Сначала я попытался бы установить, является ли он быстрее вне Emacs, чем внутри него. Вышесказанного может быть достаточно для проверки этого, но вы должны быть в состоянии выяснить точные команды, используя M-x debug-on-entry RET call-process RET (который вы можете впоследствии отменить с M-x cancel-debug-on-entry), а затем запустив функции gtags и увидев, какие аргументы появляются в трассировке стека для этого вызова функции.

Если вы не можете сделать начальную или хвостовую часть трассировки стека, попробуйте скопировать и вставить ее в свой вопрос.

Редактировать:

Основываясь на информации из комментариев, кажется, что это аргумент нечувствительности к регистру, который, по какой-то причине, замедляет вещи до неоправданной степени.

Вы должны иметь возможность отключить это поведение здесь:

Mx customize-variable RET gtags-ignore-case RET

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