gpu-accelerated 对于 terminal 在日常使用中有明显效果吗?

2022-10-01 17:08:21 +08:00
 haoliang

我分别测试了 alacritty 、st 各 50 个,下面是 systemd 统计到的内存、cpu 使用量。 (其中 cpu 使用时间是全部启动完查到的)

看内存、cpu 使用,我一点都不觉得值得用 alacritty 啊。我跟风用了 3 年有

全部 50 个实例的资源使用

● alacritty.slice - Slice /alacritty
     Loaded: loaded
     Active: active since Sat 2022-10-01 16:44:10 CST; 1min 41s ago
      Until: Sat 2022-10-01 16:44:10 CST; 1min 41s ago
      Tasks: 782
     Memory: 5.8G
        CPU: 17.592s
     CGroup: /user.slice/user-1000.slice/user@1000.service/alacritty.slice
             ├─run-r0247a080956e4b4a83f20f6a9c648b3f.service
             │ ├─300473 /usr/bin/alacritty
             │ └─300704 /bin/zsh

● st.slice - Slice /st
     Loaded: loaded
     Active: active since Sat 2022-10-01 16:46:41 CST; 2min 10s ago
      Until: Sat 2022-10-01 16:46:41 CST; 2min 10s ago
      Tasks: 100
     Memory: 307.4M
        CPU: 9.463s
     CGroup: /user.slice/user-1000.slice/user@1000.service/st.slice
             ├─run-r0011419f2a6f4dd9aa777fe36368ce74.service
             │ ├─302282 /usr/bin/st
             │ └─302305 /bin/zsh

单个实例的资源使用

● run-r0247a080956e4b4a83f20f6a9c648b3f.service - /usr/bin/alacritty
     Loaded: loaded (/run/user/1000/systemd/transient/run-r0247a080956e4b4a83f20f6a9c6>
  Transient: yes
     Active: active (running) since Sat 2022-10-01 16:44:10 CST; 3min 44s ago
   Main PID: 300473 (alacritty)
      Tasks: 17 (limit: 38085)
     Memory: 126.1M
        CPU: 321ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/alacritty.slice/run-r0247a0>
             ├─300473 /usr/bin/alacritty
             └─300704 /bin/zsh

● run-r0011419f2a6f4dd9aa777fe36368ce74.service - /usr/bin/st
     Loaded: loaded (/run/user/1000/systemd/transient/run-r0011419f2a6f4dd9aa777fe3636>
  Transient: yes
     Active: active (running) since Sat 2022-10-01 16:48:36 CST; 2min 18s ago
   Main PID: 302282 (st)
      Tasks: 2 (limit: 38085)
     Memory: 6.0M
        CPU: 174ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/st.slice/run-r0011419f2a6f4>
             ├─302282 /usr/bin/st
             └─302305 /bin/zsh

启动脚本

for _ in {1..50}; do
    systemd-run --user --slice st /usr/bin/st
done
3211 次点击
所在节点    Linux
20 条回复
haoliang
2022-10-01 17:13:30 +08:00
忘了加上它们各自的进程、线程数量
```
PID SPID TTY STAT TIME COMMAND
304097 304097 pts/18 Sl+ 0:00 alacritty
304097 304098 pts/18 Sl+ 0:00 alacritty
304097 304099 pts/18 Sl+ 0:00 alacritty
304097 304100 pts/18 Sl+ 0:00 alacritty
304097 304101 pts/18 Sl+ 0:00 alacritty
304097 304102 pts/18 SNl+ 0:00 alacritty
304097 304103 pts/18 Sl+ 0:00 alacritty
304097 304104 pts/18 Sl+ 0:00 alacritty
304097 304105 pts/18 Sl+ 0:00 alacritty
304097 304106 pts/18 Sl+ 0:00 alacritty
304097 304107 pts/18 Sl+ 0:00 alacritty
304097 304108 pts/18 Sl+ 0:00 alacritty
304097 304109 pts/18 Sl+ 0:00 alacritty
304097 304111 pts/18 Sl+ 0:00 alacritty
304097 304112 pts/18 Sl+ 0:00 alacritty
304097 304113 pts/18 Sl+ 0:00 alacritty
```
```
PID SPID TTY STAT TIME COMMAND
304355 304355 ? S 0:00 st
```
cest
2022-10-01 17:16:19 +08:00
没有,还吃 vram ,训练时可能就少了这点 vram 而 oom 炸了
aleisterw
2022-10-01 17:16:52 +08:00
@cest 😄哈哈
billlee
2022-10-01 17:54:23 +08:00
要看和谁比,比 gnome-terminal 和 konsole 是不值得,但比 windows terminal 那可是快多了
hez2010
2022-10-01 18:36:12 +08:00
终端的 GPU 加速效果不是通过内存和 CPU 占用来衡量的,而是展现在了大幅提升具有复杂的多彩色的文本排版和渲染、文字动画、命令行 UI 性能、避免闪烁和提高帧数上的。
haoliang
2022-10-01 18:53:06 +08:00
我还真通过 `intel_gpu_top` 看了这俩终端的 gpu 使用,在我粗略的测试中`while true; do echo emoji; sleep n; done`, alacritty 、st 的第一项分别有 90 上下%、10 上下% (懒得再测了)。
```
Render/3D 1.89% |██▌ | 0% 0%
Blitter 0.00% | | 0% 0%
Video 0.00% | | 0% 0%
VideoEnhance 0.00% | | 0% 0%
```
haoliang
2022-10-01 19:20:27 +08:00
还是没忍住,补一下相关统计数据。输出:`while true; do echo '😃 abc 😋 def'; sleep 0.1; done`
alacritty
```
intel-gpu-top: Intel Coffeelake (Gen9) @ /dev/dri/card0 - 955/ 955 MHz; 21% RC6; 9.85/15.07 W; 118 irqs/s

IMC reads: 11327 MiB/s
IMC writes: 10445 MiB/s

ENGINES BUSY MI_SEMA MI_WAIT
Render/3D 76.43% |██████████████████████████████████████████████████████████████████████████████████████████████████▋ | 0% 0%
Blitter 0.00% | | 0% 0%
Video 0.00% | | 0% 0%
VideoEnhance 0.00% | | 0% 0%
```
st
```
intel-gpu-top: Intel Coffeelake (Gen9) @ /dev/dri/card0 - 106/ 107 MHz; 84% RC6; 0.41/ 2.78 W; 130 irqs/s

IMC reads: 1341 MiB/s
IMC writes: 922 MiB/s

ENGINES BUSY MI_SEMA MI_WAIT
Render/3D 12.50% |████████████████▎ | 0% 0%
Blitter 0.00% | | 0% 0%
Video 0.00% | | 0% 0%
VideoEnhance 0.00% | | 0% 0%
```

不过实话实说,我不懂这输出的具体含义; mpv 硬件解码时,render 这项用的不高,主要是 video 这项。所以不知道是不是我没配置好
Owenjia
2022-10-01 19:20:36 +08:00
印象中 Alacritty 作者营销功底比较强,看到过不少人吐槽。
lwn 上也有过评测文章,Alacritty 的表现也并不出色。过去比较久了,但有句话现在看起来似乎并没有过时:
> Alacritty doesn't seem to live up to his "fastest terminal emulator in existence" claims

参考:
https://lwn.net/Articles/751763/
yuuko
2022-10-01 19:49:15 +08:00
kitty 呢
haoliang
2022-10-01 20:31:26 +08:00
@Owenjia 链接不错,发这个帖子前我也粗略看过,不过再次仔细看下来,收获不小。当初没提它主要是因为它没提这个 gpu accelerated 特性。

我临时试用了下 gnome - terminal ,它针对多实例的情况做了优化 —— 会自动转为 client 、server 模式;不过似乎它不支持 fallback fonts ,设置我常用的字体后,emoji 没法显示。
不好意思,我标题起大了。我离不开 tmux ,所以不打算看 kitty 、wert ? m 。而且我已经把用到的脚本贴出来了……
yzwduck
2022-10-01 21:24:22 +08:00
GPU-accelerated terminal 在高分辨率屏幕下可能更省 CPU 资源。
我用 sway 屏幕分辨率 4k 缩放 2x ,草率测试在 Foot/Alacritty 下运行 htop 并上下滚动,发现前者的 CPU 比后者要高数倍。
Owenjia
2022-10-01 22:04:12 +08:00
@haoliang
我日常使用 yakuake (konsole) 多一点,偶尔会用 kitty 。
没有做过量化测试,但使用体验上的确是 kitty 响应更快一点,上面的回复只是觉得 alacritty 作为一个并不算很优秀的实现可能代表不了这一类有 GPU 加速的终端。
(不常用 kitty 是因为他的默认 TERM 是 xterm-kitty ,经常需要 ssh 到其他机器会有一点不方便。

> gnome-terminal ... 不支持 fallback fonts
fallback fonts 感觉大概可以通过 fontconfig 来解决?

> 离不开 tmux ,所以不打算看 kitty 、wez
这个应该不冲突吧,不用 kitty 的高级特性只把它当成终端在里面用 tmux 体验也还可以。
(不过我记得看过一篇文章,tmux 好像会影响一些速度(?)
secondwtq
2022-10-01 22:08:10 +08:00
大概一两年之前试着用过 alacritty 吧,感觉会出现一些肉眼可见的卡顿,可能是 UHD 630 太弱了
cest
2022-10-01 22:25:51 +08:00
各种用 gpu 加速的 term

结果都没有 mobaxterm 的 keyword highlight
开个 mc 遇上 cjk half/full width path/filename 也容易出错
haoliang
2022-10-01 22:54:41 +08:00
> sway
哦,谢谢分享,我还没迁移到 wayland 上,不过我这也是 4k 。
主要是半年前卡在部分程序需要 xwayland
才能工作,也就算了。不知道中文输入法( fcitx5 )现在还需要借助 xwayland
运行吗?(哈哈,其实我自己试一下就知道了,不过如果有人指点能少走些弯路呢)

> gnome - terminal …… fontconfig
我有设置,不过 gnome-terminal 确实没处理好
(在不设置字体的前提下,alacritty 、kitty
都能正常渲染)无所谓啦,恰好之前有人提到,我就顺带试用了一下; konsole
依赖太多, 令人望而却步

> tmux 好像会影响一些速度?
哈哈,我之前也有开帖问过: https://v2ex.com/t/872763 。那时我也萌生过转到 emacs 的想法,直接跟目前这套 terminal+tmux+nvim 工作流拜拜,呵呵
haoliang
2022-10-01 23:16:55 +08:00
@secondwtq 巧啊,我也是 uhd 630 。你这角度不错,没准是这 gpu 太矬了
wizardyhnr
2022-10-02 08:10:51 +08:00
alacritty 好像说虽然是 rust 写的,但是写得很挫
DTCPSS
2022-10-02 09:54:01 +08:00
Windows Terminal 之前为了提高高刷新率控制台应用的性能还做了一些图形上的 cache
dlolimiuku
2022-10-03 20:47:53 +08:00
除了资源暂用,启动速度也是个大坑,之前对比了 alacritty kitty 和 st 。st 比它们都快至少 2 倍。
webcape233
2022-10-04 08:41:56 +08:00
呃你们一个终端工具也玩这么花吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/884229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX