V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
haoliang
V2EX  ›  Linux

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

  •  
  •   haoliang · 2022-10-01 17:08:21 +08:00 · 3596 次点击
    这是一个创建于 789 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我分别测试了 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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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
    
    20 条回复    2022-10-04 08:41:56 +08:00
    haoliang
        1
    haoliang  
    OP
       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
        2
    cest  
       2022-10-01 17:16:19 +08:00
    没有,还吃 vram ,训练时可能就少了这点 vram 而 oom 炸了
    aleisterw
        3
    aleisterw  
       2022-10-01 17:16:52 +08:00 via Android
    @cest 😄哈哈
    billlee
        4
    billlee  
       2022-10-01 17:54:23 +08:00 via Android
    要看和谁比,比 gnome-terminal 和 konsole 是不值得,但比 windows terminal 那可是快多了
    hez2010
        5
    hez2010  
       2022-10-01 18:36:12 +08:00 via Android   ❤️ 1
    终端的 GPU 加速效果不是通过内存和 CPU 占用来衡量的,而是展现在了大幅提升具有复杂的多彩色的文本排版和渲染、文字动画、命令行 UI 性能、避免闪烁和提高帧数上的。
    haoliang
        6
    haoliang  
    OP
       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
        7
    haoliang  
    OP
       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
        8
    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
        9
    yuuko  
       2022-10-01 19:49:15 +08:00 via Android
    kitty 呢
    haoliang
        10
    haoliang  
    OP
       2022-10-01 20:31:26 +08:00
    @Owenjia 链接不错,发这个帖子前我也粗略看过,不过再次仔细看下来,收获不小。当初没提它主要是因为它没提这个 gpu accelerated 特性。

    我临时试用了下 gnome - terminal ,它针对多实例的情况做了优化 —— 会自动转为 client 、server 模式;不过似乎它不支持 fallback fonts ,设置我常用的字体后,emoji 没法显示。
    不好意思,我标题起大了。我离不开 tmux ,所以不打算看 kitty 、wert ? m 。而且我已经把用到的脚本贴出来了……
    yzwduck
        11
    yzwduck  
       2022-10-01 21:24:22 +08:00   ❤️ 1
    GPU-accelerated terminal 在高分辨率屏幕下可能更省 CPU 资源。
    我用 sway 屏幕分辨率 4k 缩放 2x ,草率测试在 Foot/Alacritty 下运行 htop 并上下滚动,发现前者的 CPU 比后者要高数倍。
    Owenjia
        12
    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
        13
    secondwtq  
       2022-10-01 22:08:10 +08:00   ❤️ 1
    大概一两年之前试着用过 alacritty 吧,感觉会出现一些肉眼可见的卡顿,可能是 UHD 630 太弱了
    cest
        14
    cest  
       2022-10-01 22:25:51 +08:00
    各种用 gpu 加速的 term

    结果都没有 mobaxterm 的 keyword highlight
    开个 mc 遇上 cjk half/full width path/filename 也容易出错
    haoliang
        15
    haoliang  
    OP
       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
        16
    haoliang  
    OP
       2022-10-01 23:16:55 +08:00
    @secondwtq 巧啊,我也是 uhd 630 。你这角度不错,没准是这 gpu 太矬了
    wizardyhnr
        17
    wizardyhnr  
       2022-10-02 08:10:51 +08:00
    alacritty 好像说虽然是 rust 写的,但是写得很挫
    DTCPSS
        18
    DTCPSS  
       2022-10-02 09:54:01 +08:00 via iPhone
    Windows Terminal 之前为了提高高刷新率控制台应用的性能还做了一些图形上的 cache
    dlolimiuku
        19
    dlolimiuku  
       2022-10-03 20:47:53 +08:00
    除了资源暂用,启动速度也是个大坑,之前对比了 alacritty kitty 和 st 。st 比它们都快至少 2 倍。
    webcape233
        20
    webcape233  
       2022-10-04 08:41:56 +08:00 via iPhone
    呃你们一个终端工具也玩这么花吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3164 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:33 · PVG 21:33 · LAX 05:33 · JFK 08:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.