大家的 mode-line 的渲染耗时是多少,这个对流畅度体验影响大吗?

doom-modeline,很奇怪我比楼上的快很多,平时流畅,偶尔特别卡

;;; => "0.000828s"

禁止icon,应该还要快些。其实测试一次意义不大,循环1000次比较有意义,不过gc的大小会有影响

我认为把modeline+各种hook的损耗控制在8ms以内还是有意义的。

他的代码太乱了,昨天瞄了一下就没有时间深入研究了,有空再看看。:wink:

  %c -- print the current column number (this makes editing slower).
        Columns are numbered starting from the left margin, and the
        leftmost column is displayed as zero.

我觉得不影响,但emacs自己说会影响

好像成本不是很高啊,还可以接受。

我的机器上,GNU Emacs 28 GUI 模式下,使用doom-modeline =》~0.000642s

单次测试,对于是否启用icon差别不大。多次循环,gc会耗时不少。总体来讲肯定不用icon会稍快些,不过目前已经做了最大的优化,对流畅度影响不大。

看来是我的机器性能不太好,所以我才一直在意用不用 icon 这个问题。。在我这里 doom-mode-line 是 1.5ms 的样子。我也是 Emacs 28 native-comp

我之前也一直对all-the-icons性能有怀疑,事实证明本身有缓存机制,性能还行,唯一影响的就是gc。把gc threshold 调大一点就没啥问题了。在dired中使用all-the-icons-dired,如果文件不上千,没感觉到多大延迟的。当然不用肯定是性能最好的,就看个人取舍。

BTW,我使用MacBook Pro 2015 13’ 和 2019 15’。

“0.000151s”

请问您用的什么字体和 theme 哈?

字体是更纱黑体中的Sarasa Mono Slab SC

主题是我个人在 doom themes 的基础上修改的、以中国传统颜色为主的主题 :smile:

all-the-icons 内部有缓存机制吗? 我看把icon disable后modeline format function的速度提升还是挺明显的

all-the-icons 用了memoize 库

1 个赞

你好, @seagle0128 我这个问题 [求助] 为什么这个插件会生成这么多timers? 会不会是 all-the-icons 的缓存造成的?

不确认,不过memoize中确实有timer使用。

跑个题,有什么办法可以在文件夹数量特别多的地方自动提前禁用 all-the-icons-dired 吗?我现在就只能以黑名单的方式,碰上一个加一个。

Centaur Emacs 里有这个实现:

1 个赞

能提供一段代码演示一下这个问题吗?我的好像没看到闪

(eval (progn
        (setq resize-mini-windows t)
        (setq mini-modeline-truncate-p nil)
        (run-at-time 0.3 nil (lambda () (message  "abc")))
        (run-at-time 0.6 nil (lambda () (message  "abcd")))
        (run-at-time 0.9 nil (lambda () (message  "abcde")))))

跑个提我,有没什么 mode line 配置推荐?现在用 doom mode line 有点看腻了。。。推荐个轻量的。。