4

私のテスト セットアップ: Intel Dual Core 3GHz、Windows XP 32 ビット、Emacs 23.2.1、CEDET v1.0 (INSTALL ドキュメントの説明に従ってバイト コンパイル)。

Emacs init ファイルは、次の 4 行のみで構成されています。

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

1 つの関数のみを含む C++ ファイルを開くと、(semantic-ia-complete-symbol) を介してその 1 つの関数を完了すると、試行を繰り返した後でも、顕著な遅延が発生した後にのみ終了します。

評価semantic-analyze-current-contextすると、動作の遅さはセマンティック アナライザーが原因であることがわかります。

バッファ内のポイントを変更せずに、数回実行した後のELP 結果ファイルを次に示します。semantic-elp-analyze合計経過時間は常に約0.6 秒です。

のような include ステートメントを追加する#include <stdio.h>と、タイミングが2.5 秒に変わります。対応するELP の結果は次のとおりです。

私の Linux 環境では、同じベンチマークに 0.1 秒以上かかることはありません。(同じハードウェア、Debian の 23.1 Emacs、CEDET v1.0)

私のセットアップで何が間違っている可能性がありますか?

4

1 に答える 1

3

CEDET をコンパイルすると、最初は気付かなかった一連のエラーが発生することが判明しました。

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

これにより、81 個のファイルがコンパイルされていないままになるため、速度が低下しました。

Google は、このエラーが 23.1 より新しいバージョンの Emacs に関連している可能性があることを示唆しています。

CEDET のコンパイルに cede-build.el を使用する場合は、次の回避策を試してください。

Add (setq filename nil) to the beginning of cedet-build.el
于 2011-02-05T10:47:49.743 に答える