psmux 热会话Warm Sessions揭秘预启动服务器如何让会话创建快 4 倍【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 项目地址: https://gitcode.com/gh_mirrors/ps/psmux如果你曾觉得在 PowerShell 里开一个新会话怎么要等半天那么psmux 热会话Warm Sessions就是答案。psmux 是一个用 Rust 编写的 Windows 原生终端复用器相当于 Windows 上的 tmux它通过预启动的热服务器和壳池把new-session的创建时间从约 216 ms 压到约 50 ms——快 4 倍而且默认开启无需任何配置。什么是 psmux 热会话Warm Sessions核心思路只有四个字提前准备⚡你创建一个会话后psmux 会在后台悄悄拉起一个隐藏的备用服务器内部名叫__warm__这个热服务器提前加载你的配置文件、预启动 shell然后安静待命下次你执行psmux new-session时psmux 直接认领claim这台热服务器——把它重命名为你要的会话名整个过程跳过了启动服务器进程 绑定端口 加载配置 启动 shell的完整冷启动循环这个__warm__会话对你完全隐形psmux ls看不到它、prefix s选会话列表里没有它你永远不会需要直接操作它。快 4 倍的秘密冷启动 vs 热认领官方在参考机Windows 11 PowerShell 7.6.5上实测的结果场景最小中位数最大new-session -d热池开启默认45 ms50 ms51 msnew-session -d禁用热会话冷启动203 ms216 ms243 ms差距约 4.3 倍。原因很简单热路径只是重命名几个注册表文件 发一条认领消息冷路径则要启动服务器、绑定监听、加载配置、再启动第一个 shell。新窗口、分屏同样受益服务器内部维护着备用 shell 池窗口池里有现成热壳时new-window约 100 ms 就能看到 PowerShell 提示符冷启动 shell 则要 400~550 ms。瓶颈从来不在 psmux而在 shell 本身一次裸的pwsh -NoProfile -c exit也要约 210 ms热池的作用就是把你的使用时间和 shell 启动时间并行起来。热池深度用 warm-pool-size 调优池子深度决定了连续创建是每次都快还是只有第一次快# 默认保持 2 个备用 shell 就绪 set -g warm-pool-size 2 # 内存充裕、经常突发开窗口的机器 set -g warm-pool-size 5 # 0 完全关闭热池等价于 set -g warm off set -g warm-pool-size 0深度值会被钳制在8以内每个备用 shell 是一个真实进程实测约 94 MB 工作集空闲时整机 CPU 占用低于 0.1%补池在后台线程运行突发创建永远不会阻塞服务器主循环只有当备用 shell真正就绪写过输出且安静了 250 ms才算数认领时优先取最老的已就绪壳因为它的启动进度最完整连开十个窗口怎么办Burst 模式深度再大也扛不住20 ms 一个的连击。psmux 有个聪明的兜底当一次认领发现没有就绪壳、且 1.5 秒内发生过另一次认领时就把池子临时扩到warm-pool-size的 4 倍上限 8 个并发地同时启动这些 shell。实测连开 10 个窗口9 个在 15~30 ms 内完成只有 1 个约 500 ms——而优化前是每隔一个就要付出 400~600 ms。什么情况下不会创建热会话当前会话设置了destroy-unattached on保持热服务器存活会违背一脱离就死的预期当前会话本身就是热会话不会递归嵌套你显式关闭了热池另外每个-L name命名空间各自维护自己的热服务器存为name____warm__互不干扰。如何关闭或检查热会话如果你希望每个会话都用全新 shell 冷启动# 配置文件.psmux.conf / .tmux.conf中 set -g warm off # 或当前环境临时关闭 $env:PSMUX_NO_WARM 1想检查热会话是否在跑进阶玩法Test-Path $HOME\.psmux\__warm__.port # 存在即说明热服务器待命中 psmux -t __warm__ list-windows # 直接对热服务器发命令 psmux -t __warm__ kill-session # 只杀掉热会话还可以设置PSMUX_WARM_TRACE1后启动每次认领、补池、就绪翻转都会以毫秒级时间线写入%TEMP%\psmux_warm_trace.log是排查为什么这次开窗慢了的神器 ️关键资料路径速查资料路径热会话官方文档本文依据docs/warm-sessions.md性能实测数据docs/performance.md热 pane 生命周期管理源码src/warm_pane_sync.rs热会话跟踪日志实现src/warm_trace.rs服务器主逻辑热服务器创建/认领src/server/mod.rs壳池与窗口操作src/pane.rs一句话总结psmux 热会话 一台永远待命的__warm__备用服务器 一个随用随补的热壳池。你什么都不用做每次new-session就自动快 4 倍。【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 项目地址: https://gitcode.com/gh_mirrors/ps/psmux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?