動態

詳情 返回 返回

WoTerm、WindTerm、Putty性能對比 - 動態 詳情

偶然發現windterm的性能表現,自審思一翻,認為WoTerm也可以實現同等性能表現,於是經過努力,終於把終端性能優化到領先。無論是內存佔用及解析速度,均很接近第一名,雖然還可以再努力一把,但暫時是滿足了,以後賺了錢再進行一波優化,以下是對比數據。

先説一下高解析性能優化主要有兩點:
1.多線程,必須將VT指令的解析從主線程中剝離出來,利用專用線程進行解析。
2.針對特定指令進行優化,由原來逐字處理,改為批量處理。

再説內存優化,這必須用到,內存壓縮算法如LZ4、Snappy、LZO,因為我是為了對標windTerm故採用了與它相同的zstd壓縮算法,這樣比較省時間。
在VT終端中,每個字符都有各類屬性如字體粗斜下劃線、前顏色、背景色、是否關鍵字如email/鏈接等,故需要精心設計數據結構,讓相同屬性的內容聚在一行,核心點讓相同內容儘可能高頻率重複

以下是優化的效果
為什麼沒有把xshell / secureCRT等SSH或SFTP或FTP的工具軟件進行對比呢?主要是沒有找可用的免費版本。

🖥 測試環境

組件 配置
WoTerm 主機 12 代 i5,48 GB 內存
測試服務器 2 核 8 GB,Fedora,虛擬機 NAT 模式

⚙ 測試命令

命令 説明
time seq 10000000 生成 1000 萬行記錄
urandom_test.sh 生成 100 MB 隨機數據

📦 測試程序版本

程序 版本
WoTerm v10.2.1
WindTerm v2.7.0
PuTTY v0.83

⏱ 測試方法

  • 測試日期: 2025 年 4 月 18 日
  • 每條對比命令至少執行 10 次
  • 去掉 最大/最小值 後取平均成績

命令處理時間

在終端對服務器執行 time seq 10000000,用手機秒錶記錄總耗時。
命令末尾打印的耗時僅反映 SSH 線程收完數據的一刻,並不公平。
因軟件數據鏈路為:

SSH 線程接收 → 主線程分發 → 終端線程處理 → 主線程展示

故以手機秒錶為準。
命令處理時間

urandom_test 吞吐量對比

本項對比 每秒處理記錄數(吞吐量)
執行吞吐量

urandom_test 執行後內存佔用

下圖已減去啓動後的基線內存,僅顯示命令帶來的 新增內存
內存佔用

注:以上成績基於上述配置,不同硬件/環境結果可能不同。

官網地址: https://woterm.com
開源地址: https://github.com/aoyiduo/wotermhttps://gitee.com/aoyiduo/woterm

Add a new 評論

Some HTML is okay.