CEDET 语义分析器在其他快速系统上相当慢

发布于 2024-10-15 20:40:17 字数 880 浏览 1 评论 0原文

我的测试设置: Intel 双核 3GHz、Windows XP 32 位、Emacs 23.2.1、CEDET v1.0(按照安装文档中所述进行字节编译)。

Emacs init 文件仅包含以下四行:

(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表明缓慢是由语义分析器引起的。

这是运行 semantic-elp-analyze 多次后的 ELP 结果文件 ,而不改变缓冲区中的点。总运行时间始终约为0.6 秒

当我添加包含语句(例如 #include)时,计时更改为 2.5 秒。以下是相应的 ELP 结果

在我的 Linux 环境中,相同的基准测试花费的时间不会超过 0.1 秒。 (相同的硬件,Debian 23.1 Emacs,CEDET v1.0)

您知道我的设置可能有什么问题吗?

My test setup:
Intel Dual Core 3GHz, Windows XP 32 bit, Emacs 23.2.1, CEDET v1.0 (byte-compiled as described in the INSTALL docs).

The Emacs init file only consists of these four lines:

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

When opening a C++ file that includes just one function, completing that one function via (semantic-ia-complete-symbol) finishes only after a noticable lag, even after repeated tries.

Evaluating semantic-analyze-current-context shows that the sluggishness is caused by the Semantic analyzer.

Here's the ELP result file after running semantic-elp-analyze several times, without changing the point in the buffer. The total elapsed time is always about 0.6 seconds.

When I add an include statement, like #include <stdio.h>, the timings change to 2.5 seconds. Here's a corresponding ELP result.

The same benchmarks never take longer than 0.1 seconds in my linux environment. (Same hardware, Debian's 23.1 Emacs, CEDET v1.0)

Any ideas what could be wrong with my setup?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

世界等同你 2024-10-22 20:40:17

事实证明,编译 CEDET 引发了一堆我一开始没有注意到的错误:

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

这些错误导致 81 个文件未编译而导致速度变慢。

Google 建议此错误可能与高于 23.1 的 Emacs 版本有关。

如果您使用 cedet-build.el 编译 CEDET,请尝试以下解决方法:

Add (setq filename nil) to the beginning of cedet-build.el

It turned out that compiling CEDET threw a bunch of errors I didn't notice at first:

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

Which caused the slowdown by leaving 81 files uncompiled.

Google suggests this error might be related to Emacs versions newer than 23.1.

If you use cedet-build.el for compiling CEDET, try the following workaround:

Add (setq filename nil) to the beginning of cedet-build.el
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文