终于有人出来解决Emacs处理外部进程输出速度慢的问题了

按照楼上的time tree方法测试这个C patch基本没用。但是

(setq process-adaptive-read-buffering nil)

在我的M1 macbook上有4倍提速,虽然还是比terminal慢。

真有意思,在Windows上加了

(setq process-adaptive-read-buffering nil)

以后速度变慢了。本来只用1秒,加了以后反而卡得不行

原来Windows那么快吗…

我也很吃惊,2015年的老台式机,对比去年的Macbook M1。可见硬件性能是大大过剩的,软件架构成了瓶颈。

默认值是t

确实是t,忘记我eval过了。难怪我查看值就是nil

我试了下原帖作者的patch,在macbook上现在tree一下emacs源码eshell是0.241秒,terminal是0.245秒,确实和终端速度一样了。

1 个赞

再次请教:这个patch的正确使用方式是怎样的?

  1. 原贴作者两个commit: Comparing emacs-mirror:master...tyler-dodge:tyler-background-thread-v3 · emacs-mirror/emacs · GitHub,
  2. 上面那位reddit用户的 emacs_intr_read 修改,
  3. 以上两个合并

我应该选哪种方式?

我用的是这个版本 Buffer process output on a separate thread. · tyler-dodge/emacs@b386047 · GitHub

和并到现在的master上以后只有一两处很小的手工修改

1 个赞

谢谢大佬指路~~ :grinning:

合并到emacs-mac的话好像要改的地方多点?

不知道,没用过

使用效果到底如何呀?

macos上效果很不错,确实跟终端速度一样。windows上没法用这个patch。

1 个赞