我最近买了一台带有 Mountain Lion 的新 Retina MacBook Pro。不幸的是,emacs 在我的新计算机上启动需要很长时间(大约 5 秒)。我尝试安装最新的自制版本的 emacs,但问题仍然存在。我没有 .emacs 文件,所以我对可能导致启动缓慢的原因一无所知。
我可以使用哪些工具来调试 emacs 在启动期间花费的时间?
我最近买了一台带有 Mountain Lion 的新 Retina MacBook Pro。不幸的是,emacs 在我的新计算机上启动需要很长时间(大约 5 秒)。我尝试安装最新的自制版本的 emacs,但问题仍然存在。我没有 .emacs 文件,所以我对可能导致启动缓慢的原因一无所知。
我可以使用哪些工具来调试 emacs 在启动期间花费的时间?
看起来您需要为您的计算机主机名提供一个完全限定的域名(例如,myretina.local
);否则,Emacs 启动会很慢。
您可以通过终端验证您的主机名
hostname
你可以设置它
sudo scutil --set HostName myretina.local
对于初学者,运行emacs -Q
(这将启动 Emacs,根本没有启动文件),看看是否仍然很慢。
您可能希望阅读以下内容,其中解释了 Emacs 将默认查找的所有各种可能的文件:
C-hig (emacs) Init File
RET
更改主机名对我没有任何作用。对我来说神奇的东西似乎违反直觉,但现在我的 emacs 立即从终端启动。这就是我所做的
alias emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init
但是,从图形界面开始仍然需要几秒钟,有时甚至 15 秒钟。诡异的!
Emacs 应该在您的设置中立即启动
Mac 构建(来自源代码)
% time /Applications/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs)' -Q
/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs) 0.19s user 0.06s system 35% cpu 0.696 total
从 emacsformacosx.com 下载的 NS 版本
% time /Volumes/Emacs/Emacs.app/Contents/MacOS/Emacs --debug-init -eval '(kill-emacs)' -Q
/Volumes/Emacs/Emacs.app/Contents/MacOS/Emacs --debug-init -eval -Q 0.17s user 0.08s system 35% cpu 0.691 total
我不为 Emacs 使用自制软件,但它应该是相似的。你确定你没有加载非标准包吗?
确实有一些东西完全被打破了emacs
。如果nameservice
崩溃或路由不正常,或者您的 vpn 隧道已关闭等。
对于我们系统管理员来说,启动 vi 始终是一种选择:
# time emacs -debug-init -eval '(kill-emacs)' -Q
real 2m5.177s
user 0m0.029s
sys 0m0.024s
此时 vpnc 已经死掉并导致了一些问题(路由和名称服务)。注意超过2分钟!
使用 emacs 30 年后仍然不明白为什么它真的需要解析您的主机名。对于锁定文件,有比这更好的选择。
管理成百上千的机器和虚拟机并设置单个主机文件并不是真正的答案。手动将需要数天/数周并自动生成。它真的和没有一样好。