lsp-bridge 在 macOS 上比 Linux 卡

各位有没有发现 lsp-bridge 在 macOS 上运行要更缓慢和卡顿。

我的设备是 10 核心的 M1 Pro 的 MacBook Pro。Emacs 是从官网下载源码用native compilation 参数编译的。

同样的配置文件,lsp-bridge 的弹出和列表在另一台配置显著比我笔记本低一截的 Linux 电脑上却更流畅。甚至是我自己的macbook 上,如果在 debian 虚拟机里面运行 emacs + lsp-bridge 也比直接在 macOS 上要流畅许多。用 profiler 得到的结果如下:

    1217  72% - redisplay_internal (C function)
     140   8%  - eval
     132   7%   + lsp-bridge--mode-line-format
       8   0%   + if
       5   0%  + jit-lock-function
       5   0%    file-remote-p
     305  18% + command-execute
      92   5% + timer-event-handler
      43   2% + ...
      15   0% + lsp-bridge-monitor-post-command
       3   0% + #<interpreted-function 6FE>

这个差距在使用 rust-analyzer 分析rust 项目的时候还不明显,但是用 texlab 来读取一些较大的 latex 项目就很明显了, 比如键入 $\lam$ 之后要等一两秒才会弹出\lambda,而在 linux 上就是立刻弹出。使用 lsp-bridge-profile-dump 然后分析生成的 lsp-bridge.prof得到如下:

所以我想应该不是 lsp-bridge 的 python 部分运行慢。

当然即使如此,lsp-bridge 依然要比 lsp-mode 要快。

另外,EAF 在 macOS 上也要卡很多,在使用 EAF PDF Viewer 时候,如果拖动 emacs 窗口,那么原有内容会停留在原处一段时间,然后才跟过去到新的位置。为此我已经放弃在 macOS 上使用 EAF 了,看PDF还是用 skim 。

嗯… Mac OS 上几乎所有 Emacs 插件都慢了些,很大程度上和 Mac OS 的反病毒策略有关。

同样的配置,在 WSL 里启动只要 0.22s,在 mac 要 0.32s。所以 mac 比 linux 要稍微慢一点我并不意外。当然 mac 的 emacs 速度再慢也就是稍稍慢,和 windows 比也算好的多得多了。

而且还有使用1天到1周后补全/文档框占满整个frame显示的诡异bug :smiling_face_with_tear: 要不fsf怎么说,支持win/mac只是让你在不free的平台上尝一尝,来作为最终迁到free平台上的过渡 呢

你是lsp-bridge最新版吗?

最近修复了一个rust inlay依赖redisplay的性能问题。

同时建议emacs -Q做横向对比,并确保lsp-bridge日志选项不要打开,打开日志影响性能。

是 ARM mac 么?