<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Rocky‘s Blog - Performance</title>
      <link>https://suchaharcan.github.io/</link>
      <description>月更 技术博客 CXX优先</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://suchaharcan.github.io/tags/performance/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Tue, 11 Aug 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Zsh 配置体系体检与优化：启动链路分析</title>
          <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
          <author>Suchaharcan</author>
          <link>https://suchaharcan.github.io/03Share_blog/zsh-config-optimization/</link>
          <guid>https://suchaharcan.github.io/03Share_blog/zsh-config-optimization/</guid>
          <description xml:base="https://suchaharcan.github.io/03Share_blog/zsh-config-optimization/">&lt;h1 id=&quot;zsh-pei-zhi-ti-xi-ti-jian-yu-you-hua-qi-dong-lian-lu-fen-xi&quot;&gt;Zsh 配置体系体检与优化：启动链路分析&lt;&#x2F;h1&gt;
&lt;blockquote&gt;
&lt;p&gt;TL;DR：本机 &lt;code&gt;zsh -i&lt;&#x2F;code&gt; 启动实测 &lt;strong&gt;~715ms → 仅移除「每次启动自动运行 fortune|lolcat|cowsay」一项即降到 ~271ms（快 2.4 倍）&lt;&#x2F;strong&gt;。其余慢点集中在 compinit&#x2F;compaudit 补全扫描，已通过 &lt;code&gt;ZSH_DISABLE_COMPFIX&lt;&#x2F;code&gt;、去重重复加载、清理死配置进一步收敛。全部优化不损失任何功能，改动均带 &lt;code&gt;[OPT]&lt;&#x2F;code&gt; 标记。&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;1-pei-zhi-ti-xi-di-tu&quot;&gt;1. 配置体系地图&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;mermaid&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;flowchart TD&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    A[zsh 启动] --&amp;gt; B[.zshenv&amp;lt;br&#x2F;&amp;gt;cargo env]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    B --&amp;gt; C[.zprofile&amp;lt;br&#x2F;&amp;gt;仅登录 shell&amp;lt;br&#x2F;&amp;gt;brew shellenv &#x2F; OrbStack &#x2F; pipx]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    C --&amp;gt; D[.zshrc&amp;lt;br&#x2F;&amp;gt;交互式 shell]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    D --&amp;gt; E[p10k instant prompt]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    E --&amp;gt; F[brew shellenv]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    F --&amp;gt; G[Oh My Zsh 框架&amp;lt;br&#x2F;&amp;gt;plugins: z git history brew sudo ...]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    G --&amp;gt; H[~&#x2F;.zsh&#x2F;paths 细分路径]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    H --&amp;gt; I[~&#x2F;.zsh&#x2F;functions 自定义函数]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    I --&amp;gt; J[compinit 补全初始化&amp;lt;br&#x2F;&amp;gt;最大开销所在]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    J --&amp;gt; K[zsh-autocomplete + fzf-tab]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    K --&amp;gt; L[别名 &#x2F; Vi 模式 &#x2F; 历史]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    L --&amp;gt; M[p10k 主题]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    M --&amp;gt; N[❌ 旧版：每日箴言自动运行&amp;lt;br&#x2F;&amp;gt;✅ 优化版：改为按需 qotd()]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;2-qi-dong-hao-shi-gou-cheng-shi-ce&quot;&gt;2. 启动耗时构成（实测）&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;实测环境&lt;&#x2F;strong&gt;：&lt;code&gt;hyperfine --warmup 2 --runs 5 &#x27;zsh -i -c exit&#x27;&lt;&#x2F;code&gt;；耗时追踪用 &lt;code&gt;zsh -ixc exit 2&amp;gt;&amp;amp;1 | ts -i &#x27;%.s&#x27; | sort -rn | head -20&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;版本&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;平均启动耗时&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;用户态&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;系统态&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;优化前（原始 .zshrc）&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;strong&gt;714.9 ms&lt;&#x2F;strong&gt;（次轮 652.3 ms）&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;272.7 ms&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;387.7 ms&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;仅移除自动每日箴言&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;strong&gt;270.9 ms&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;123.0 ms&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;120.7 ms&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;启动耗时分布（估算，基于 -x 追踪与进程数）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;compinit&#x2F;compaudit 补全扫描  ██████████████████████████  约 60-70%（系统态高）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;每日箴言 fortune|lolcat|cowsay ████████                    约 20-25%（3 个子进程）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Oh My Zsh + p10k + 其余       ████                        约 10-15%&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;mermaid&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;pie title 优化前启动耗时构成（估算）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;quot;compinit&#x2F;compaudit 扫描&amp;quot; : 65&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;quot;每日箴言 3 进程&amp;quot; : 22&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;quot;OMZ + p10k + 其他&amp;quot; : 13&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：测试沙箱中无法写入 &lt;code&gt;~&#x2F;.zcompdump&lt;&#x2F;code&gt;，两次对比都走了 compinit 全量扫描路径，因此绝对数值偏大、但&lt;strong&gt;相对节省量真实可信&lt;&#x2F;strong&gt;。你本机有正常缓存时，优化后的实际数值会更低。&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;3-you-hua-dian-qing-dan&quot;&gt;3. 优化点清单&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;#&lt;&#x2F;th&gt;&lt;th&gt;优化点&lt;&#x2F;th&gt;&lt;th&gt;问题&lt;&#x2F;th&gt;&lt;th&gt;影响&lt;&#x2F;th&gt;&lt;th&gt;处理&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;每日箴言自动运行&lt;&#x2F;td&gt;&lt;td&gt;每次开 shell 都 fork &lt;code&gt;fortune | lolcat | cowsay&lt;&#x2F;code&gt; 3 个子进程&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;实测省 ~380ms（启动减半以上）&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;改为按需函数 &lt;code&gt;qotd()&lt;&#x2F;code&gt;，&lt;code&gt;# qotd&lt;&#x2F;code&gt; 注释即恢复&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;compaudit 安全扫描&lt;&#x2F;td&gt;&lt;td&gt;冷启动时对 2000+ 补全文件做权限审计（追踪 TOP 慢点全在这）&lt;&#x2F;td&gt;&lt;td&gt;冷启动数百 ms&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;export ZSH_DISABLE_COMPFIX=true&lt;&#x2F;code&gt;（OMZ 官方支持，可一键还原）&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;ghcup env 加载 3 次&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;.zshrc&lt;&#x2F;code&gt; 顶部 + 底部 + &lt;code&gt;env_path.sh&lt;&#x2F;code&gt; 各一次&lt;&#x2F;td&gt;&lt;td&gt;重复 IO 与 PATH 追加&lt;&#x2F;td&gt;&lt;td&gt;统一收敛到 &lt;code&gt;~&#x2F;.zsh&#x2F;paths&#x2F;env_path.sh&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;direnv hook 加载 2 次&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;.zshrc&lt;&#x2F;code&gt; 底部与 &lt;code&gt;env_path.sh&lt;&#x2F;code&gt; 重复 eval&lt;&#x2F;td&gt;&lt;td&gt;双倍 hook 开销&lt;&#x2F;td&gt;&lt;td&gt;保留 &lt;code&gt;env_path.sh&lt;&#x2F;code&gt; 一份&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;perl5 环境块 2 份&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;.zshrc&lt;&#x2F;code&gt; 底部与 &lt;code&gt;env_path.sh&lt;&#x2F;code&gt; 重复&lt;&#x2F;td&gt;&lt;td&gt;重复 export&lt;&#x2F;td&gt;&lt;td&gt;保留 &lt;code&gt;env_path.sh&lt;&#x2F;code&gt; 一份&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;补全 menu zstyle 冲突&lt;&#x2F;td&gt;&lt;td&gt;先 &lt;code&gt;menu select&lt;&#x2F;code&gt; 后 &lt;code&gt;menu no&lt;&#x2F;code&gt;，后者覆盖前者，死配置&lt;&#x2F;td&gt;&lt;td&gt;无功能损失但易误导&lt;&#x2F;td&gt;&lt;td&gt;只保留 fzf-tab 需要的 &lt;code&gt;menu no&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;autosuggestions 死变量&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;ZSH_AUTOSUGGEST_*&lt;&#x2F;code&gt; 已设置，但插件从未加载&lt;&#x2F;td&gt;&lt;td&gt;无效配置&lt;&#x2F;td&gt;&lt;td&gt;注释保留，附启用说明&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;alias .. =cd ..&lt;&#x2F;code&gt; 空格 bug&lt;&#x2F;td&gt;&lt;td&gt;等号两侧有空格，别名实际不生效&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;..&lt;&#x2F;code&gt; 回上级目录失效&lt;&#x2F;td&gt;&lt;td&gt;修正为 &lt;code&gt;alias ..=&#x27;cd ..&#x27;&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;历史策略冲突&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;appendhistory&lt;&#x2F;code&gt; 与 OMZ 的 &lt;code&gt;INC_APPEND_HISTORY&lt;&#x2F;code&gt; 冲突&lt;&#x2F;td&gt;&lt;td&gt;历史追加行为不确定&lt;&#x2F;td&gt;&lt;td&gt;统一为 &lt;code&gt;INC_APPEND_HISTORY SHARE_HISTORY&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;echo&lt;&#x2F;code&gt; 改 &lt;code&gt;print -n&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;precmd&#x2F;preexec 用 echo 输出光标控制序列&lt;&#x2F;td&gt;&lt;td&gt;闪烁与额外开销&lt;&#x2F;td&gt;&lt;td&gt;改用 &lt;code&gt;print -n&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;autojump 残留加载&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;&#x2F;usr&#x2F;local&#x2F;etc&#x2F;profile.d&#x2F;autojump.sh&lt;&#x2F;code&gt; 是 Intel 时代路径（本机不存在），OMZ 插件已覆盖&lt;&#x2F;td&gt;&lt;td&gt;死代码&lt;&#x2F;td&gt;&lt;td&gt;移除&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;&lt;strong&gt;已经做得很好的部分（保留不动）&lt;&#x2F;strong&gt;：nvm 懒加载、kubectl 懒补全、&lt;code&gt;.zcompdump&lt;&#x2F;code&gt; 24 小时缓存策略、&lt;code&gt;typeset -U path fpath&lt;&#x2F;code&gt; 去重、p10k instant prompt。这些是标准做法，无需改动。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;4-fu-xian-yu-yan-zheng&quot;&gt;4. 复现与验证&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 1. 启动耗时基准&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;hyperfine&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;-warmup&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt;zsh -i -c exit&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 2. 定位启动慢点（Top 20）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;zsh&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;ixc&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; exit&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;&amp;gt;&amp;amp;1&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; ts&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;i&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt;%.s&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; sort&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;rn&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; head&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;20&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 3. 精确分析（zprof）：临时在 .zshrc 顶部打开 zmodload zsh&#x2F;zprof，底部执行 zprof&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;zmodload&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; zsh&#x2F;zprof&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;   #&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 顶部&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;zprof&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;               #&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 底部，退出前输出耗时表&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;5-ying-yong-you-hua-san-bu-zou&quot;&gt;5. 应用优化（三步走）&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 0) 备份&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;cp&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; ~&#x2F;.zshrc&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; ~&#x2F;.zshrc.bak-20260811&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 1) 用优化版替换（文件在 outputs&#x2F;zshrc.optimized；先 diff 确认差异）&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;diff&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;u&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; ~&#x2F;.zshrc&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; &#x2F;path&#x2F;to&#x2F;zshrc.optimized&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; less&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;cp&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; &#x2F;path&#x2F;to&#x2F;zshrc.optimized&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; ~&#x2F;.zshrc&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 2) 重建补全缓存并重启&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;f&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; ~&#x2F;.zcompdump&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-language&quot;&gt;*&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span class=&quot;z-support z-function&quot;&gt; exec&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; zsh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment&quot;&gt;#&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment&quot;&gt; 3) 验证：功能检查 + 启动时间复测&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;zsh&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;ixc&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; exit&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt;&amp;gt;&amp;amp;1&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; ts&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;i&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt;%.s&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; sort&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;rn&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator&quot;&gt; |&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name&quot;&gt; head&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;20&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name&quot;&gt;hyperfine&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt; -&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-other&quot;&gt;-warmup&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant z-numeric&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt;zsh -i -c exit&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;想完全还原：&lt;code&gt;cp ~&#x2F;.zshrc.bak-20260811 ~&#x2F;.zshrc &amp;amp;&amp;amp; exec zsh&lt;&#x2F;code&gt;。&lt;&#x2F;p&gt;
&lt;h2 id=&quot;6-qi-ta-wen-jian-de-xiao-gai-ke-xuan&quot;&gt;6. 其他文件的小改（可选）&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;文件&lt;&#x2F;th&gt;&lt;th&gt;修改&lt;&#x2F;th&gt;&lt;th&gt;原因&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;~&#x2F;.zsh&#x2F;paths&#x2F;env_path.sh&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;LC_ALL=&quot;en_US.UTF-8&quot;&lt;&#x2F;code&gt; 重复两行，删一行&lt;&#x2F;td&gt;&lt;td&gt;重复赋值&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;~&#x2F;.zsh&#x2F;paths&#x2F;env_path.sh&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;HOMEBREW_SSL_NO_VERIFY=1&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;⚠️ 安全项：关闭了 Homebrew 全部 TLS 证书校验。若 USTC 镜像证书正常，建议删除并实测 &lt;code&gt;brew update&lt;&#x2F;code&gt;；若必须保留，至少知晓风险&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;~&#x2F;.zsh&#x2F;paths&#x2F;lang_rust.sh&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;其中的 &lt;code&gt;source ~&#x2F;.cargo&#x2F;env&lt;&#x2F;code&gt; 与 &lt;code&gt;.zshenv&lt;&#x2F;code&gt; 重复&lt;&#x2F;td&gt;&lt;td&gt;重复加载；保留 &lt;code&gt;.zshenv&lt;&#x2F;code&gt; 一份即可（非交互 shell 也需要）&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;7-jie-lun&quot;&gt;7. 结论&lt;&#x2F;h2&gt;
&lt;p&gt;本次优化&lt;strong&gt;没有删除任何功能&lt;&#x2F;strong&gt;：箴言变成按需调用、补全冲突收敛、重复加载去重、两处 bug 修复。核心收益在启动速度：实测单项优化即可把 715ms 压到 271ms，叠加 compinit 与去重优化后预期进入 &lt;strong&gt;200ms 以内&lt;&#x2F;strong&gt;（以你机器 zprof 实测为准）。优化后的 &lt;code&gt;.zshrc&lt;&#x2F;code&gt; 全文与原始版 diff 已随文档归档，可随时对照或还原。&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
