V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kobayashi
V2EX  ›  DevOps

zplugin turbo mode 后台加载: ZSH 启动救星

  •  
  •   Kobayashi · 2019-05-09 11:57:52 +08:00 · 3672 次点击
    这是一个创建于 2033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    声明:zplugin 和 zplug 是 2 个不同的 ZSH 插件管理器,前者特色为其 Turbo Mode (实际为后台加载),后者以其极差的并行实现效率而闻名。

    Zplugin 实现的Turbo Mode,实际为一种后台加载。目前看来,是高耗时启动(如 nvm,rbenv,pyenv )的真正解决方案。在 prompt 出现后,高耗时初始化代码可在后台加载,此时可以正常键入命令、执行。其后台加载的变动都会反映回当前 shell 下(如 PATH 变动,alias、function 创建)。效果参考下面 reddit 文章,37 个插件 150ms 启动( SSD 情况下),实际还有 900ms 花在后台。

    相关插件管理器对比

    zplugin 还是唯一一个对于插件管理器自身和所有插件都实现了 bytecode 编译的插件管理器。编译 .zsh 文件为字节码无疑可以加快启动速度。据我测试( SSD 情况下),zplugin 插件管理器编译前后有 20 ms 差别,我自己的所有配置编译前后也有 15 ms 变化。(所有插件编译前后效果不好统计,因为 zplugin 总是会对插件编译为字节码,没有办法禁止)

    除此以外,zplugin 作者也是 ZSH 插件 fast-syntax-highlighting, history-search-multi-word 的作者,代码效率应该也有保障。

    zplugin 特性简介:

    • Turbo Mode (后台加载)
    • 编译插件和管理器自身为字节码
    • 兼容 oh-my-zsh 和 prezto 两个框架的插件
    • 支持管理脚本(下载、更新)
    • 支持管理补全,可以控制到单个补全是否开启

    启动速度对比

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2710 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:29 · PVG 15:29 · LAX 23:29 · JFK 02:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.