<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>seniorfish 的博客</title>
    <link>https://chenbase.cc/</link>
    <description>个人数字史记</description>
    <language>zh-CN</language>
    <atom:link href="https://chenbase.cc/rss.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 24 Oct 2026 09:45:31 GMT</lastBuildDate>
    <item>
      <title>冰山：我对“个人博客”的全部理解</title>
      <link>https://chenbase.cc/n/iceberg</link>
      <guid isPermaLink="true">https://chenbase.cc/n/iceberg</guid>
      <pubDate>Sat, 24 Oct 2026 07:31:19 GMT</pubDate>
      <description>从节点化内容、可插拔主题到 Service Worker 零延迟与链上存在性证明，梳理“冰山”个人博客的设计取舍与实现路径。</description>
      <content:encoded><![CDATA[<p>我决定将本博客系统命名为“冰山”。</p>
<h2 id="纯粹的博客系统冰山一角"><a href="#纯粹的博客系统冰山一角">纯粹的博客系统：冰山一角</a></h2>
<p>须谨遵第一性原理。无论本站如何创新，无论融入什么技术，它首先得是一个博客系统，是文字的聚集地，而不是花哨的工具箱或是画廊——后者却是近年来博客系统呈现出的趋势。</p>
<p>冰山一角固然荒芜，但纯粹。</p>
<h3 id="让内容回归中心"><a href="#让内容回归中心">让内容回归中心</a></h3>
<p>在这个网站中，一切页面皆“节点”，每一个节点本质上都是一个 markdown 文件，文件名就是这个节点的独一无二的语义化 id，用于站内关联、URL 定位。以内容为中心，就是让页面尽量使用对创作者友好的 <code>.md</code> 编写，然后自动化构建为静态网页；如无必要，勿增特殊的非 markdown 的功能页。本站默认主题的首页就是一个典例，它是门面，但不妨碍其在源码库中以 <code>home.md</code> 自居。</p>
<p>故而，当下，Astro 是最佳选择。注意，这是先有需求，再定的框架。</p>
<p>Astro 通常用 Frontmatter（写在 Markdown 文件开头、由 <code>---</code> 包裹的头部区域）来承载页面的元数据。冰山没有这样做，而是将正文与元数据分开存放，<code>foo.md</code> 只放正文，<code>foo.meta.yml</code> 放标题、标签、继承关系等元数据。这是因为正文的哈希变化要记入历史修改记录，会更新“最后修改时间”，而拆成 sidecar 之后，就可以在不增加新的正文修改记录的情况下自由修改元数据。</p>
<p>分离变与不变的理念贯穿始终。任海起潮退，冰山依旧。</p>
<p>元数据示例如下，更详细的定义见仓库中的 <code>CONTENT.md</code>。字段设计追求最小原语，并且，很多字段是可省略的，仓库中也有调用大语言模型自动根据文章内容生成元数据的工具，以简化发布流程，降低创作阻力，之后会介绍。</p>
<pre class="shiki shiki-themes github-light github-dark" style="background-color:light-dark(#fff, #24292e);--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;color:light-dark(#24292e, #e1e4e8);--shiki-light:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">tags</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">文章 建站 Agent</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">title</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">标题</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">description</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">一句话摘要</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">extends</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">parent-id</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">url</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">https://example.com</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">aliases</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: [</span><span style="color:light-dark(#032F62, #9ECBFF);--shiki-light:#032F62;--shiki-dark:#9ECBFF">old-id</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="color:light-dark(#22863A, #85E89D);--shiki-light:#22863A;--shiki-dark:#85E89D">draft</span><span style="color:light-dark(#24292E, #E1E4E8);--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="color:light-dark(#005CC5, #79B8FF);--shiki-light:#005CC5;--shiki-dark:#79B8FF">false</span></span></code></pre>
<h3 id="让形式与样式成为一种选项"><a href="#让形式与样式成为一种选项">让形式与样式成为一种选项</a></h3>
<p>我见过很多这样的博客系统：“文章”、“想法”、“收藏”、“友链”等板块各自为政，列于导航栏中，独立存在。这样分类固然清晰，但会让内容分散。更致命的是，如果未来想增加一个类型，例如“闪念”，就不得不调整导航结构、模板与路由，牵一发而动全身，与开闭原则背道而驰。</p>
<p>要解决上述问题，必须理清“文章”、“想法”、“友链”这些板块的本质：它们在底层数据上无非都是图片、链接与文本的组合，完全可以用 Markdown 统一承载。也就是说，它们之间的决定性区别不在于数据结构，而在于视图表现（样式与交互）。</p>
<p>既然同源，便可同构。“冰山”借鉴了 HTML 中 <code>&#x3C;input type="..."></code> 的多态设计理念，直接用 .meta.yml 中的 Tag 字段消解了板块的隔阂。Tag 由空格分隔的多个词语组成，其中第一个词被定义为“主 Tag”，充当内容的 type（类型变体）。目前系统内置了“文章”、“想法”、“闪念”、“收藏”四种特殊视图；遇到未定义主 Tag，则会优雅回退为默认模式。</p>
<p>如此一来，未来若想新增“日记”类型，只需在写作时将首个 Tag 设为“日记”，再交由 Agent 补充对应的样式与处理逻辑即可，导航、模板与路由均无需伤筋动骨。更重要的是，当“内容类型”退化为一种“标签”，原本笨重的顶部导航栏便被轻巧的标签筛选器自然取代了。不同类型文章（总称）没有类型的阻隔，聚在一起讲述我的故事。</p>
<h3 id="让相同的主题在时间维度上延展"><a href="#让相同的主题在时间维度上延展">让相同的主题在时间维度上延展</a></h3>
<p>我意识到应当让相同的主题在时间上延展，让同类的文章在逻辑上聚集。</p>
<p>“延展”是指不同节点之间是可相关联的，能看出某个主题的发展“时间线”。这种关联不是超链接式的网状跳转关系，而是更接近线状或树状的关系结构。这是基于我自己的习惯提炼而来的。有的主题我浅尝辄止，也有的主题我会更新后续，或是派生出多个子项目。</p>
<p>传统博客系统的文章与文章之间是孤立的，要想更新后续，通常的做法是“编辑” “追加”；若是想写成一系列文章，可能就要引入“专栏”机制。前者破坏了文章的不变性，而且让旧内容与新内容混杂在一起；后者增加了新的“实体”，与设计哲学相悖。</p>
<p>况且，本质上讲，人的发展是树状的，技术的发展是层状的，每当你学到一门新的技术，都会有无数以该技术为前提的新事物向你敞开大门，所以最符合人的认知的数据结构应当是树——有深度，有广度，有顺序。但是上述的所有传统方案，都无法实现树状的组织结构。不过，也得益于树的特性，冰山只新增了一个 <code>extends</code> 字段，就能让节点相互连接，从而描摹出我的创作的路径、折腾历程。</p>
<p>树的连接不依赖于作者手工维护目录，这样做不仅是考虑到便捷性，同时也是出于可靠性的考量。让人不出错是一种奢求，每当一种功能需要靠人的习惯实现，都应慎重考虑其对人思维负担的增加。“冰山”之意亦在其中，看似过度设计，实则减轻了人的心智模型的复杂度，或者更准确的说，是将复杂度转移到了负责实现的 Agent 上，而这种代码层次的复杂度的适量提升将伴随着未来 Agent 编码能力的提升变得不成问题。将复杂度隐藏，对创作者只呈现冰山一角的理念如影随形。</p>
<p><code>extends</code> 在编译期被解析。父节点不存在会报错，并给出相近的 id 供参考；成环会报错；指向草稿也会报错。旧文章底部会自动附上后续，新节点的开头会自然关联前文，让读者只一瞥便能知晓前因后果，于是，“专栏”这个实体消失了，文章与文章之间的阻隔也被打通。一切只需要我在元数据里写一行 <code>extends: foo</code>。</p>
<h2 id="极致的性能追求悖论与优解"><a href="#极致的性能追求悖论与优解">极致的性能追求：悖论与优解</a></h2>
<p>按理来说，凭借 Astro 的孤岛架构、默认零 JavaScript 运行时，性能是极好的。事实上也确乎如此，Astro 的性能始终是它的口碑与招牌。但是 JavaScript 少是否等同于“网页加载速度快”？不尽然。现代硬件的性能，对加载一个博客网站来说绰绰有余；“原生轻量”的纯 HTML 网页，与通常被认为“复杂笨重”的 React 网页，两者加载速度的差距都通常只有百毫秒这个级别。</p>
<h3 id="优化的悖论"><a href="#优化的悖论">优化的悖论</a></h3>
<p>根据<a href="https://en.wikipedia.org/wiki/Amdahl%27s_law">阿姆达尔定律</a>：</p>
<ol>
<li>假设系统原本执行某项任务（比如网页加载完成）所需的总时间为 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="3.643ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 1610.3 834.8" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-1-TEX-I-1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path><path id="MJX-1-TEX-N-6F" d="M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z"></path><path id="MJX-1-TEX-N-6C" d="M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z"></path><path id="MJX-1-TEX-N-64" d="M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-1-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6F" xlink:href="#MJX-1-TEX-N-6F"></use><use data-c="6C" xlink:href="#MJX-1-TEX-N-6C" transform="translate(500,0)"></use><use data-c="64" xlink:href="#MJX-1-TEX-N-64" transform="translate(778,0)"></use></g></g></g></g></g></svg></mjx-container>。</li>
<li>假设其中某一部分（比如 JS 渲染）耗时占总时间的比例为 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.448ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 640 453" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-2-TEX-I-1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><use data-c="1D6FC" xlink:href="#MJX-2-TEX-I-1D6FC"></use></g></g></g></svg></mjx-container>（<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.09ex;" xmlns="http://www.w3.org/2000/svg" width="9.745ex" height="1.597ex" role="img" focusable="false" viewBox="0 -666 4307.1 706" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-3-TEX-N-30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path id="MJX-3-TEX-N-3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path><path id="MJX-3-TEX-I-1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path><path id="MJX-3-TEX-N-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><use data-c="30" xlink:href="#MJX-3-TEX-N-30"></use></g><g data-mml-node="mo" transform="translate(777.8,0)"><use data-c="3C" xlink:href="#MJX-3-TEX-N-3C"></use></g><g data-mml-node="mi" transform="translate(1833.6,0)"><use data-c="1D6FC" xlink:href="#MJX-3-TEX-I-1D6FC"></use></g><g data-mml-node="mo" transform="translate(2751.3,0)"><use data-c="3C" xlink:href="#MJX-3-TEX-N-3C"></use></g><g data-mml-node="mn" transform="translate(3807.1,0)"><use data-c="31" xlink:href="#MJX-3-TEX-N-31"></use></g></g></g></svg></mjx-container>）。</li>
<li>现在我们穷尽手段，把这一部分的速度提高了 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.179ex" height="1.595ex" role="img" focusable="false" viewBox="0 -694 521 705" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-4-TEX-I-1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><use data-c="1D458" xlink:href="#MJX-4-TEX-I-1D458"></use></g></g></g></svg></mjx-container> 倍（即这一部分耗时缩短为原来的 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.798ex;" xmlns="http://www.w3.org/2000/svg" width="1.829ex" height="2.755ex" role="img" focusable="false" viewBox="0 -864.9 808.4 1217.7" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-5-TEX-N-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path id="MJX-5-TEX-I-1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mfrac"><g data-mml-node="mn" transform="translate(227.4,394) scale(0.707)"><use data-c="31" xlink:href="#MJX-5-TEX-N-31"></use></g><g data-mml-node="mi" transform="translate(220,-345) scale(0.707)"><use data-c="1D458" xlink:href="#MJX-5-TEX-I-1D458"></use></g><rect width="568.4" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container>）。</li>
</ol>
<p>那么，优化后的新总耗时 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="4.264ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 1884.6 834.8" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-6-TEX-I-1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path><path id="MJX-6-TEX-N-6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-6-TEX-N-65" d="M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z"></path><path id="MJX-6-TEX-N-77" d="M90 368Q84 378 76 380T40 385H18V431H24L43 430Q62 430 84 429T116 428Q206 428 221 431H229V385H215Q177 383 177 368Q177 367 221 239L265 113L339 328L333 345Q323 374 316 379Q308 384 278 385H258V431H264Q270 428 348 428Q439 428 454 431H461V385H452Q404 385 404 369Q404 366 418 324T449 234T481 143L496 100L537 219Q579 341 579 347Q579 363 564 373T530 385H522V431H529Q541 428 624 428Q692 428 698 431H703V385H697Q696 385 691 385T682 384Q635 377 619 334L559 161Q546 124 528 71Q508 12 503 1T487 -11H479Q460 -11 456 -4Q455 -3 407 133L361 267Q359 263 266 -4Q261 -11 243 -11H238Q225 -11 220 -3L90 368Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-6-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6E" xlink:href="#MJX-6-TEX-N-6E"></use><use data-c="65" xlink:href="#MJX-6-TEX-N-65" transform="translate(556,0)"></use><use data-c="77" xlink:href="#MJX-6-TEX-N-77" transform="translate(1000,0)"></use></g></g></g></g></g></svg></mjx-container> 为：</p>
<mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -1.577ex;" xmlns="http://www.w3.org/2000/svg" width="48.369ex" height="4.638ex" role="img" focusable="false" viewBox="0 -1353 21379 2050" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-7-TEX-I-1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path><path id="MJX-7-TEX-N-6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-7-TEX-N-65" d="M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z"></path><path id="MJX-7-TEX-N-77" d="M90 368Q84 378 76 380T40 385H18V431H24L43 430Q62 430 84 429T116 428Q206 428 221 431H229V385H215Q177 383 177 368Q177 367 221 239L265 113L339 328L333 345Q323 374 316 379Q308 384 278 385H258V431H264Q270 428 348 428Q439 428 454 431H461V385H452Q404 385 404 369Q404 366 418 324T449 234T481 143L496 100L537 219Q579 341 579 347Q579 363 564 373T530 385H522V431H529Q541 428 624 428Q692 428 698 431H703V385H697Q696 385 691 385T682 384Q635 377 619 334L559 161Q546 124 528 71Q508 12 503 1T487 -11H479Q460 -11 456 -4Q455 -3 407 133L361 267Q359 263 266 -4Q261 -11 243 -11H238Q225 -11 220 -3L90 368Z"></path><path id="MJX-7-TEX-N-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path><path id="MJX-7-TEX-N-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path id="MJX-7-TEX-N-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path id="MJX-7-TEX-N-2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path><path id="MJX-7-TEX-I-1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path><path id="MJX-7-TEX-N-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path><path id="MJX-7-TEX-N-6F" d="M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z"></path><path id="MJX-7-TEX-N-6C" d="M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z"></path><path id="MJX-7-TEX-N-64" d="M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z"></path><path id="MJX-7-TEX-N-2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path><path id="MJX-7-TEX-I-1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path><path id="MJX-7-TEX-LO-5B" d="M224 -649V1150H455V1099H275V-598H455V-649H224Z"></path><path id="MJX-7-TEX-LO-5D" d="M16 1099V1150H247V-649H16V-598H196V1099H16Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-7-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6E" xlink:href="#MJX-7-TEX-N-6E"></use><use data-c="65" xlink:href="#MJX-7-TEX-N-65" transform="translate(556,0)"></use><use data-c="77" xlink:href="#MJX-7-TEX-N-77" transform="translate(1000,0)"></use></g></g></g><g data-mml-node="mo" transform="translate(2162.4,0)"><use data-c="3D" xlink:href="#MJX-7-TEX-N-3D"></use></g><g data-mml-node="mo" transform="translate(3218.2,0)"><use data-c="28" xlink:href="#MJX-7-TEX-N-28"></use></g><g data-mml-node="mn" transform="translate(3607.2,0)"><use data-c="31" xlink:href="#MJX-7-TEX-N-31"></use></g><g data-mml-node="mo" transform="translate(4329.4,0)"><use data-c="2212" xlink:href="#MJX-7-TEX-N-2212"></use></g><g data-mml-node="mi" transform="translate(5329.6,0)"><use data-c="1D6FC" xlink:href="#MJX-7-TEX-I-1D6FC"></use></g><g data-mml-node="mo" transform="translate(5969.6,0)"><use data-c="29" xlink:href="#MJX-7-TEX-N-29"></use></g><g data-mml-node="msub" transform="translate(6358.6,0)"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-7-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6F" xlink:href="#MJX-7-TEX-N-6F"></use><use data-c="6C" xlink:href="#MJX-7-TEX-N-6C" transform="translate(500,0)"></use><use data-c="64" xlink:href="#MJX-7-TEX-N-64" transform="translate(778,0)"></use></g></g></g><g data-mml-node="mo" transform="translate(8191.1,0)"><use data-c="2B" xlink:href="#MJX-7-TEX-N-2B"></use></g><g data-mml-node="mfrac" transform="translate(9191.4,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><use data-c="1D6FC" xlink:href="#MJX-7-TEX-I-1D6FC"></use></g><g data-mml-node="msub" transform="translate(640,0)"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-7-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6F" xlink:href="#MJX-7-TEX-N-6F"></use><use data-c="6C" xlink:href="#MJX-7-TEX-N-6C" transform="translate(500,0)"></use><use data-c="64" xlink:href="#MJX-7-TEX-N-64" transform="translate(778,0)"></use></g></g></g></g><g data-mml-node="mi" transform="translate(1084.6,-686)"><use data-c="1D458" xlink:href="#MJX-7-TEX-I-1D458"></use></g><rect width="2450.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(12159.4,0)"><use data-c="3D" xlink:href="#MJX-7-TEX-N-3D"></use></g><g data-mml-node="msub" transform="translate(13215.2,0)"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-7-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6F" xlink:href="#MJX-7-TEX-N-6F"></use><use data-c="6C" xlink:href="#MJX-7-TEX-N-6C" transform="translate(500,0)"></use><use data-c="64" xlink:href="#MJX-7-TEX-N-64" transform="translate(778,0)"></use></g></g></g><g data-mml-node="mrow" transform="translate(14992.1,0)"><g data-mml-node="mo" transform="translate(0 -0.5)"><use data-c="5B" xlink:href="#MJX-7-TEX-LO-5B"></use></g><g data-mml-node="mo" transform="translate(472,0)"><use data-c="28" xlink:href="#MJX-7-TEX-N-28"></use></g><g data-mml-node="mn" transform="translate(861,0)"><use data-c="31" xlink:href="#MJX-7-TEX-N-31"></use></g><g data-mml-node="mo" transform="translate(1583.2,0)"><use data-c="2212" xlink:href="#MJX-7-TEX-N-2212"></use></g><g data-mml-node="mi" transform="translate(2583.4,0)"><use data-c="1D6FC" xlink:href="#MJX-7-TEX-I-1D6FC"></use></g><g data-mml-node="mo" transform="translate(3223.4,0)"><use data-c="29" xlink:href="#MJX-7-TEX-N-29"></use></g><g data-mml-node="mo" transform="translate(3834.7,0)"><use data-c="2B" xlink:href="#MJX-7-TEX-N-2B"></use></g><g data-mml-node="mfrac" transform="translate(4834.9,0)"><g data-mml-node="mi" transform="translate(220,676)"><use data-c="1D6FC" xlink:href="#MJX-7-TEX-I-1D6FC"></use></g><g data-mml-node="mi" transform="translate(279.5,-686)"><use data-c="1D458" xlink:href="#MJX-7-TEX-I-1D458"></use></g><rect width="840" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(5914.9,0) translate(0 -0.5)"><use data-c="5D" xlink:href="#MJX-7-TEX-LO-5D"></use></g></g></g></g></svg></mjx-container>
<p>由此可以得到著名的整体加速比公式：</p>
<mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.404ex;" xmlns="http://www.w3.org/2000/svg" width="25.638ex" height="5.466ex" role="img" focusable="false" viewBox="0 -1353 11332.2 2415.8" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-8-TEX-I-1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path><path id="MJX-8-TEX-N-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path><path id="MJX-8-TEX-I-1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path><path id="MJX-8-TEX-N-6F" d="M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z"></path><path id="MJX-8-TEX-N-6C" d="M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z"></path><path id="MJX-8-TEX-N-64" d="M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z"></path><path id="MJX-8-TEX-N-6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-8-TEX-N-65" d="M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z"></path><path id="MJX-8-TEX-N-77" d="M90 368Q84 378 76 380T40 385H18V431H24L43 430Q62 430 84 429T116 428Q206 428 221 431H229V385H215Q177 383 177 368Q177 367 221 239L265 113L339 328L333 345Q323 374 316 379Q308 384 278 385H258V431H264Q270 428 348 428Q439 428 454 431H461V385H452Q404 385 404 369Q404 366 418 324T449 234T481 143L496 100L537 219Q579 341 579 347Q579 363 564 373T530 385H522V431H529Q541 428 624 428Q692 428 698 431H703V385H697Q696 385 691 385T682 384Q635 377 619 334L559 161Q546 124 528 71Q508 12 503 1T487 -11H479Q460 -11 456 -4Q455 -3 407 133L361 267Q359 263 266 -4Q261 -11 243 -11H238Q225 -11 220 -3L90 368Z"></path><path id="MJX-8-TEX-N-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path id="MJX-8-TEX-N-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path><path id="MJX-8-TEX-N-2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path><path id="MJX-8-TEX-I-1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path><path id="MJX-8-TEX-N-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path><path id="MJX-8-TEX-N-2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path><path id="MJX-8-TEX-I-1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><use data-c="1D446" xlink:href="#MJX-8-TEX-I-1D446"></use></g><g data-mml-node="mo" transform="translate(922.8,0)"><use data-c="3D" xlink:href="#MJX-8-TEX-N-3D"></use></g><g data-mml-node="mfrac" transform="translate(1978.6,0)"><g data-mml-node="msub" transform="translate(357.2,676)"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-8-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6F" xlink:href="#MJX-8-TEX-N-6F"></use><use data-c="6C" xlink:href="#MJX-8-TEX-N-6C" transform="translate(500,0)"></use><use data-c="64" xlink:href="#MJX-8-TEX-N-64" transform="translate(778,0)"></use></g></g></g><g data-mml-node="msub" transform="translate(220,-686)"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-8-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6E" xlink:href="#MJX-8-TEX-N-6E"></use><use data-c="65" xlink:href="#MJX-8-TEX-N-65" transform="translate(556,0)"></use><use data-c="77" xlink:href="#MJX-8-TEX-N-77" transform="translate(1000,0)"></use></g></g></g><rect width="2084.6" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(4581,0)"><use data-c="3D" xlink:href="#MJX-8-TEX-N-3D"></use></g><g data-mml-node="mfrac" transform="translate(5636.7,0)"><g data-mml-node="mn" transform="translate(2597.7,676)"><use data-c="31" xlink:href="#MJX-8-TEX-N-31"></use></g><g data-mml-node="mrow" transform="translate(220,-710)"><g data-mml-node="mo"><use data-c="28" xlink:href="#MJX-8-TEX-N-28"></use></g><g data-mml-node="mn" transform="translate(389,0)"><use data-c="31" xlink:href="#MJX-8-TEX-N-31"></use></g><g data-mml-node="mo" transform="translate(1111.2,0)"><use data-c="2212" xlink:href="#MJX-8-TEX-N-2212"></use></g><g data-mml-node="mi" transform="translate(2111.4,0)"><use data-c="1D6FC" xlink:href="#MJX-8-TEX-I-1D6FC"></use></g><g data-mml-node="mo" transform="translate(2751.4,0)"><use data-c="29" xlink:href="#MJX-8-TEX-N-29"></use></g><g data-mml-node="mo" transform="translate(3362.7,0)"><use data-c="2B" xlink:href="#MJX-8-TEX-N-2B"></use></g><g data-mml-node="mfrac" transform="translate(4362.9,0)"><g data-mml-node="mi" transform="translate(220,394) scale(0.707)"><use data-c="1D6FC" xlink:href="#MJX-8-TEX-I-1D6FC"></use></g><g data-mml-node="mi" transform="translate(262.1,-345) scale(0.707)"><use data-c="1D458" xlink:href="#MJX-8-TEX-I-1D458"></use></g><rect width="652.5" height="60" x="120" y="220"></rect></g></g><rect width="5455.4" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container>
<p>由于本网站部署在 Cloudflare 上，而在我先前的实测中，其 anycast 路由在国内通常落到美国西海岸节点圣何塞，RTT 在 200ms 左右。首次访问需要 TCP 三次握手（1 RTT）、TLS 1.3 握手（1 RTT）与 HTTP 请求到首字节响应 TTFB（1 RTT），合计 3 个 RTT，乐观取 600ms；网页本身的渲染耗时，本机 Chrome 实测的首页 LCP 约为 135ms（这是纯本地测量，不含网络往返）。把两者相加，首访的总等待粗略计为 735ms。假设我们动用“外星科技”，将渲染时间惊人地加速整整 3 倍，用户等待的总时间也只是从 735ms 变成 645ms，省下 90ms。单看“网页渲染”这一项，速度确实提高了 3 倍，可用户实际感知到的整体提升只有 12%。更让人难以接受的是取极限的情况：<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="6.961ex" height="1.595ex" role="img" focusable="false" viewBox="0 -694 3076.6 705" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-9-TEX-I-1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path><path id="MJX-9-TEX-N-2192" d="M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z"></path><path id="MJX-9-TEX-N-221E" d="M55 217Q55 305 111 373T254 442Q342 442 419 381Q457 350 493 303L507 284L514 294Q618 442 747 442Q833 442 888 374T944 214Q944 128 889 59T743 -11Q657 -11 580 50Q542 81 506 128L492 147L485 137Q381 -11 252 -11Q166 -11 111 57T55 217ZM907 217Q907 285 869 341T761 397Q740 397 720 392T682 378T648 359T619 335T594 310T574 285T559 263T548 246L543 238L574 198Q605 158 622 138T664 94T714 61T765 51Q827 51 867 100T907 217ZM92 214Q92 145 131 89T239 33Q357 33 456 193L425 233Q364 312 334 337Q285 380 233 380Q171 380 132 331T92 214Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><use data-c="1D458" xlink:href="#MJX-9-TEX-I-1D458"></use></g><g data-mml-node="mo" transform="translate(798.8,0)"><use data-c="2192" xlink:href="#MJX-9-TEX-N-2192"></use></g><g data-mml-node="mi" transform="translate(2076.6,0)"><use data-c="221E" xlink:href="#MJX-9-TEX-N-221E"></use></g></g></g></svg></mjx-container> 时，<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.912ex;" xmlns="http://www.w3.org/2000/svg" width="26.329ex" height="2.869ex" role="img" focusable="false" viewBox="0 -864.9 11637.6 1267.9" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-10-TEX-I-1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path><path id="MJX-10-TEX-N-6D" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-10-TEX-N-61" d="M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z"></path><path id="MJX-10-TEX-N-78" d="M201 0Q189 3 102 3Q26 3 17 0H11V46H25Q48 47 67 52T96 61T121 78T139 96T160 122T180 150L226 210L168 288Q159 301 149 315T133 336T122 351T113 363T107 370T100 376T94 379T88 381T80 383Q74 383 44 385H16V431H23Q59 429 126 429Q219 429 229 431H237V385Q201 381 201 369Q201 367 211 353T239 315T268 274L272 270L297 304Q329 345 329 358Q329 364 327 369T322 376T317 380T310 384L307 385H302V431H309Q324 428 408 428Q487 428 493 431H499V385H492Q443 385 411 368Q394 360 377 341T312 257L296 236L358 151Q424 61 429 57T446 50Q464 46 499 46H516V0H510H502Q494 1 482 1T457 2T432 2T414 3Q403 3 377 3T327 1L304 0H295V46H298Q309 46 320 51T331 63Q331 65 291 120L250 175Q249 174 219 133T185 88Q181 83 181 74Q181 63 188 55T206 46Q208 46 208 23V0H201Z"></path><path id="MJX-10-TEX-N-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path><path id="MJX-10-TEX-N-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path id="MJX-10-TEX-N-2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path><path id="MJX-10-TEX-I-1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path><path id="MJX-10-TEX-N-30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path id="MJX-10-TEX-N-2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z"></path><path id="MJX-10-TEX-N-38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z"></path><path id="MJX-10-TEX-N-36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path id="MJX-10-TEX-N-2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path><path id="MJX-10-TEX-N-32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D446" xlink:href="#MJX-10-TEX-I-1D446"></use></g><g data-mml-node="TeXAtom" transform="translate(646,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo"><use data-c="6D" xlink:href="#MJX-10-TEX-N-6D"></use><use data-c="61" xlink:href="#MJX-10-TEX-N-61" transform="translate(833,0)"></use><use data-c="78" xlink:href="#MJX-10-TEX-N-78" transform="translate(1333,0)"></use></g></g></g><g data-mml-node="mo" transform="translate(2289.7,0)"><use data-c="3D" xlink:href="#MJX-10-TEX-N-3D"></use></g><g data-mml-node="mfrac" transform="translate(3345.5,0)"><g data-mml-node="mn" transform="translate(721.3,394) scale(0.707)"><use data-c="31" xlink:href="#MJX-10-TEX-N-31"></use></g><g data-mml-node="mrow" transform="translate(220,-345) scale(0.707)"><g data-mml-node="mn"><use data-c="31" xlink:href="#MJX-10-TEX-N-31"></use></g><g data-mml-node="mo" transform="translate(500,0)"><use data-c="2212" xlink:href="#MJX-10-TEX-N-2212"></use></g><g data-mml-node="mi" transform="translate(1278,0)"><use data-c="1D6FC" xlink:href="#MJX-10-TEX-I-1D6FC"></use></g></g><rect width="1556.2" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(5419.5,0)"><use data-c="3D" xlink:href="#MJX-10-TEX-N-3D"></use></g><g data-mml-node="mfrac" transform="translate(6475.3,0)"><g data-mml-node="mn" transform="translate(848.6,394) scale(0.707)"><use data-c="31" xlink:href="#MJX-10-TEX-N-31"></use></g><g data-mml-node="mn" transform="translate(220,-345) scale(0.707)"><use data-c="30" xlink:href="#MJX-10-TEX-N-30"></use><use data-c="2E" xlink:href="#MJX-10-TEX-N-2E" transform="translate(500,0)"></use><use data-c="38" xlink:href="#MJX-10-TEX-N-38" transform="translate(778,0)"></use><use data-c="31" xlink:href="#MJX-10-TEX-N-31" transform="translate(1278,0)"></use><use data-c="36" xlink:href="#MJX-10-TEX-N-36" transform="translate(1778,0)"></use></g><rect width="1810.8" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(8803.8,0)"><use data-c="2248" xlink:href="#MJX-10-TEX-N-2248"></use></g><g data-mml-node="mn" transform="translate(9859.6,0)"><use data-c="31" xlink:href="#MJX-10-TEX-N-31"></use><use data-c="2E" xlink:href="#MJX-10-TEX-N-2E" transform="translate(500,0)"></use><use data-c="32" xlink:href="#MJX-10-TEX-N-32" transform="translate(778,0)"></use><use data-c="32" xlink:href="#MJX-10-TEX-N-32" transform="translate(1278,0)"></use></g></g></g></svg></mjx-container>，此时 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="14.519ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 6417.2 834.8" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="MJX-11-TEX-I-1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path><path id="MJX-11-TEX-N-6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-11-TEX-N-65" d="M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z"></path><path id="MJX-11-TEX-N-77" d="M90 368Q84 378 76 380T40 385H18V431H24L43 430Q62 430 84 429T116 428Q206 428 221 431H229V385H215Q177 383 177 368Q177 367 221 239L265 113L339 328L333 345Q323 374 316 379Q308 384 278 385H258V431H264Q270 428 348 428Q439 428 454 431H461V385H452Q404 385 404 369Q404 366 418 324T449 234T481 143L496 100L537 219Q579 341 579 347Q579 363 564 373T530 385H522V431H529Q541 428 624 428Q692 428 698 431H703V385H697Q696 385 691 385T682 384Q635 377 619 334L559 161Q546 124 528 71Q508 12 503 1T487 -11H479Q460 -11 456 -4Q455 -3 407 133L361 267Q359 263 266 -4Q261 -11 243 -11H238Q225 -11 220 -3L90 368Z"></path><path id="MJX-11-TEX-N-2192" d="M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z"></path><path id="MJX-11-TEX-N-36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path id="MJX-11-TEX-N-30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path id="MJX-11-TEX-N-A0" d=""></path><path id="MJX-11-TEX-N-6D" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path><path id="MJX-11-TEX-N-73" d="M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><use data-c="1D447" xlink:href="#MJX-11-TEX-I-1D447"></use></g><g data-mml-node="TeXAtom" transform="translate(617,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mtext"><use data-c="6E" xlink:href="#MJX-11-TEX-N-6E"></use><use data-c="65" xlink:href="#MJX-11-TEX-N-65" transform="translate(556,0)"></use><use data-c="77" xlink:href="#MJX-11-TEX-N-77" transform="translate(1000,0)"></use></g></g></g><g data-mml-node="mo" transform="translate(2162.4,0)"><use data-c="2192" xlink:href="#MJX-11-TEX-N-2192"></use></g><g data-mml-node="mn" transform="translate(3440.2,0)"><use data-c="36" xlink:href="#MJX-11-TEX-N-36"></use><use data-c="30" xlink:href="#MJX-11-TEX-N-30" transform="translate(500,0)"></use><use data-c="30" xlink:href="#MJX-11-TEX-N-30" transform="translate(1000,0)"></use></g><g data-mml-node="mtext" transform="translate(4940.2,0)"><use data-c="A0" xlink:href="#MJX-11-TEX-N-A0"></use><use data-c="6D" xlink:href="#MJX-11-TEX-N-6D" transform="translate(250,0)"></use><use data-c="73" xlink:href="#MJX-11-TEX-N-73" transform="translate(1083,0)"></use></g></g></g></svg></mjx-container>。也就是说，就算我们把渲染优化到“零耗时”——这当然不可能—— 总耗时也就减少 18.4%，却是渲染优化所能达到的上限。</p>
<p>所以，使用 Astro 作为框架，与其说是追求极致的性能，不如说是其开发更便利，或是在 SEO 方面更有优势。</p>
<p>换句话说，首访的等待时间几乎不可优化，渲染再怎么加速，也省不下那 600ms 的网络开销，但是……</p>
<h3 id="0-延迟service-worker-请求拦截"><a href="#0-延迟service-worker-请求拦截">0 延迟：Service Worker 请求拦截</a></h3>
<p>阿姆达尔定律告诉我们，要抓主要矛盾、加速大概率事件。在这里，主要矛盾是网络延迟；大概率事件是首访之后的后续访问。</p>
<p>对冰山系统进行分析建模：这是一个静态的网站，意味着无后端、无服务端状态；我很懒(doge)，意味着博客更新频率低；追求小而美，意味着整个网站的体量不大。</p>
<p>所以本站采用离线优先设计。网站所有页面都缓存在浏览器本地，每次访问立刻返回内容，同时向服务端查询是否有新内容；如果有，就下载新版本并提示刷新；没有，则接下来三十分钟内都不再询问。</p>
<p>Service Worker 是一个绝佳的抽象层切入点。首先，它运行在客户端，所以彻底消除了缓存内容的网络延迟。其次，它不运行在前端，而是一个后台服务，所以代码设计上与前端分离。最后，它为优雅的 SEO 优化的多主题实现作了铺垫。</p>
<p>构建时，整个主题的文本资源被打包成一个带内容哈希的 JSON 文件，也就是一份 VFS；同时，会生成一份 manifest，其中的 <code>releaseId</code> 由内容哈希、锚定哈希、站点配置、各主题的 commit 与 VFS 哈希共同决定。它不包含构建时间，这样保证了同样的内容重复构建的版本号不变。</p>
<p>用户首次访问时，从服务器取得静态网页，不可避免要承受完整的网络延迟。但随后，Service Worker 便会部署，并在后台异步加载 VFS（一个单文件），完成后就开始拦截同源请求并直接返回本地数据，实现几乎 0 延迟。我很期待访客惊奇于一个表面上平平无奇的博客网站为何加载如此之快，也期待于他们在这一节里找到答案。</p>
<p>每次导航时 lazy 检查，三十分钟内只查一次，<code>releaseId</code> 变了才下载新的 VFS，并提示“有新内容，刷新后生效”。这将进一步减轻服务端压力，代价是如果我此时刚好更新博客，最差情况下访客需要 30 分钟才能同步，但考虑到博客文章的非时效性以及这种事发生的频率低，所以作为一个已知的取舍所接纳。</p>
<p>同时，为了防止 Service Worker 出 bug 而导致自身代码被持续缓存无法更新，我在设计上规定：每 7 天让 Service Worker 自毁一次，并把这段逻辑放在更新流程的最高优先级。这个期限是综合影响程度与发生概率定的。</p>
<p>很快我想到，既然每个主题都被打包成一份可替换的 VFS，那么“换主题”就只是换一份 VFS，甚至在这个过程中 URL 也能保持不变！这是冰山两个非常有趣的创意之一；另一个，则是把 Git 与以太坊结合起来，通过将提交哈希写入链上事件，让每一次提交都获得一个不可撤回的时间戳，这一点后文再细说。</p>
<h2 id="面向未来-agent-的设计"><a href="#面向未来-agent-的设计">面向未来 Agent 的设计</a></h2>
<p>本站代码由 DeepSeek V4.1 1017 于 2026年10月17日下午奠基。在此之前，架构设计已由我构思近一个月，那时的我一直在等一个机会，等到一个足够强的、足够便宜的模型可靠地完成我的构思，17日那天我看到 DeepSeek 发布新模型的新闻，就知道是时候了。</p>
<p>整个实现的过程很快，只用了几个小时。Agent 时代，最重要的不是如何实现需求，而是弄清楚自己的需求到底是什么。</p>
<p>但，我不清楚。</p>
<p>我甚至不清楚自己到底清不清楚。</p>
<p>于是我将“我不清楚自己的需求”这个命题本身，也纳入了需求的考虑范围。</p>
<p>当前 AI 的能力处于加速提升的状态。去年的这个时候，AI 尚且能稳定解出高考数学卷；而不久前，OpenAI 一次性公布 722 篇数学论文，震古烁今。可以预见，未来定会涌现出能力更强的模型。若给予相同的提示词，令其从零开始构建，最终产出的设计方案必将超越现有模型的水平，这是一种独属于 Agent 时代的“升级”的方式。但如果我按传统的方式设计博客系统，将内容与界面耦合，依赖新的“插件”“主题”去修改样式，便相当于抛弃了这种能力。所以，我设计的不是一座会随着海平面上升而沉沦的岛屿，而是一块能乘波而起、立于浪潮之巅的浮冰。</p>
<h3 id="可插拔的主题"><a href="#可插拔的主题">可插拔的主题</a></h3>
<p>冰山允许当前乃至未来的任意 Agent，在不读取具体内容的前提下，单凭契约与接口重做整站外观。系统支持多种主题同时共存与自由切换，且无需为此引入额外的子域名或 URL 标识。这并非凭空设想，而是前文静态网页与离线优先两大理念妥善落地后，水到渠成的真实可能。就像设计了一套良好的数学底层公理，优美推论就会自然浮现。</p>
<p>多主题切换并非由服务端实现，而是交给了 Service Worker。服务端本质上是无状态的，若强行在服务端处理多主题，势必需要增加额外路由来加以区分。相比之下，运行在客户端的 Service Worker 具备状态感知能力，可以根据本地存储的配置动态决定返回的内容，从而在保持路由纯净的前提下完成主题切换。得益于前文 VFS 设计的铺垫，不同主题之间彻底解耦，实现极其优雅。</p>
<p>更巧的是，这一机制天然实现了渐进式的“分级”效果。传统博客若为同一内容配置多套主题路由，易分散页面权重；若不借助 Service Worker 而想在单路由下实现多主题，就只能依赖动态渲染，这同样会损害 SEO 并加重页面加载负担。将多主题交由 Service Worker 接管后，网页端得以保持纯粹的静态形态，由于搜索引擎爬虫不会加载 Service Worker，SEO 友好度得以较好保全。对于首次到访的访客而言，浏览器只会加载默认主题，其余主题则可视作“附加功能”或“DLC”，由 Service Worker 在后台按需异步下载，既不会增加首访的资源负担，也省去了复杂的 JS 动态渲染。</p>
<p>一个 Git 分支（<code>theme/&#x3C;id></code>）就是一个主题，这么设计的妙处在于它充分利用了 Git 分支的特性。首先，每个主题都拥有版本控制系统赋予的强大能力，回滚、分叉等操作自然不在话下，使我可以自由探索新的样式，不必担心无法还原糟糕的设计。其次，Claude Code 的 worktree 功能对多分支并行修改有着良好的支持，理论上我甚至可以指派 10 个 Agent 并行写十份设计。最后，分支提供了恰到好处的隔离性。为了一个新主题而新建仓库显得兴师动众，放在同一分支里又会与正文内容混杂。在这里，新建主题就是新建分支，删除主题就是删除分支，主题分支之间互不耦合，不必担心发生冲突，真正实现了“可插拔”。</p>
<p>基于此，我打算实现一个有趣的应用。每隔一段时间，就让当前各个模型厂商的旗舰模型（当然，具体取决于我的零花钱状况）分别帮我从零写一次网站主题。由此，访客在代码评测数据集的跑分之外，便多了一份独具个人特色的模型能力评价来源。</p>
<p>这可谓是一石二鸟。一方面，旗舰模型在相同的接口下设计博客网站，本身就是对其在现实世界中解决真实工程问题能力的极佳考验，且最终结果作为一种博客主题呈现，能让访客直观感受到模型的能力强弱与风格习惯；另一方面，我可以定期选举出我偏好的作品设为新的默认主题，让网站的前端设计始终走在当下 Agent 能力的最前沿，定期的主题更换也能带来更多新奇感，这与博客系统传统上“固定不变”“单调乏味”的形象形成鲜明对比。</p>
<p>一个更有意义的应用在于，过去 Agent 的设计作品都可以被悉数归档。如果我的博客存在时间够长，例如几十年，那么也许这些归档的作品就能从侧面反映这几十年里模型的能力提升，乃至整个前端的技术变化，甚至审美潮流的变迁，最终成为一座“前端博物馆”。</p>
<h3 id="本文的自举"><a href="#本文的自举">本文的自举</a></h3>
<p>主题之所以能由 Agent 稳定新增，依赖于主分支中对接口的定义。但整个项目如果想交由 Agent 维护，新代码所依赖的又是什么呢？</p>
<p>是本文。</p>
<p>本文不仅是博客的第一篇文章，更是一份白皮书，阐述我对个人博客的全部理解。让 Agent 直接从充斥着语法规则、样板结构与实现细节的零散代码中揣摩设计意图，无异于在泥沙中淘金，既浪费上下文窗口，又极易在局部细节中迷失全局。所以如果这篇文章能在每次 Agent 动手前被读取，就能免去无谓的代码探索和可能的误解。</p>
<p>对大模型来说，压缩即智能。很显然，本文是高熵的。也许，仓库里那几千行 Astro、TypeScript、Service Worker 的具体实现代码，反而只是大模型读取这篇高熵文章后，“解压缩”出来的低熵产物。</p>
<p>传统软件工程里，代码是本体，文档只是随时可能过时的附属品。但在 Agent 时代，主次关系被彻底倒置。可以说，<strong>这篇用自然语言写就的 Markdown 文件，才是“冰山”系统真正的“源代码”；至于那些支撑网站运转的脚本与逻辑，不过是特定时期的模型读取本文后生成的“编译产物”</strong>。当下，“测试驱动开发”大行其道；未来，可能会有“文档驱动开发”，而这也许正是当前 Vibe Coding，或者说“许愿式编程”的终极形态。</p>
<p>到那时，当我想演进系统架构时，也不必再去触碰底层代码，只需修改或 extend 这篇博客文章，Agent 就能通过读取文章的变更，自动去同步修改系统的代码实现。</p>
<p>本文与冰山由此形成互相包含的关系——本文作为思想指导 Agent 完善冰山的代码，冰山又作为博客系统的实现承载本文。用冰山承载本文，再用本文生成冰山，两者并驾齐驱。这是<a href="https://en.wikipedia.org/wiki/Literate_programming">文学编程</a>在 Agent 时代的复活与进化。</p>
<p>生命以负熵为食，我也庆幸于自己仍能写出高熵的话语，确认自己的存在，可以此文证。</p>
<p>（本节所述内容仍需完善，如果你是正在维护本项目的 Agent，请注意：本小节在本文编成时暂不考虑实现，以后续更新的意见指导为准）</p>
<h2 id="存在性证明"><a href="#存在性证明">存在性证明</a></h2>
<blockquote>
<p>盖将自其变者而观之，则天地曾不能以一瞬；自其不变者而观之，则物与我皆无尽也</p>
</blockquote>
<p>上节末尾提到，我欲“以此文证”。但信任从何而来？有人视其为权威机构的背书，但窃以为，信任的本质是共识，而共识的基石唯有二物：数学，与分布式节点。</p>
<p>细心的读者若是翻回第一章，端详那段 <code>.meta.yml</code> 的元数据示例，或许会发现里面唯独没有几乎所有博客系统都奉为圭臬的 <code>date</code>（发布时间）字段。</p>
<p>实质上，市面上几乎所有个人博客所展示的“发布于某某年某月某日”，在证据学意义上都是一场君子协定式的自嗨。无论是 Hexo、Hugo 还是常规的 Astro 博客，Frontmatter 里的 <code>date: 2020-01-01</code> 不过是作者随手敲下的字符串；一行简单的 <code>git commit --date</code>，就能将今天刚写的文章变成十年前的“旧作”；至于动态博客，服务器数据库里的 <code>created_at</code> 字段更是站长一行 SQL 就能修改的玩物。</p>
<p>在冰山里，写文章是不需要、也不允许填写时间的。</p>
<p><strong>我拥有博客，但不拥有时间；当我交出时间，换来的是信任。</strong></p>
<p>在这里，冰山是真正的不可变、绝对的真实，乃至对“永恒”的追求。水是流动的、易变的、转瞬即逝的，正如人类的思绪与字节的跳动；唯有结水为冰，它才拥有了对抗时间冲刷的刚性。</p>
<h3 id="默克尔树的嫁接"><a href="#默克尔树的嫁接">默克尔树的嫁接</a></h3>
<p>若想把文章放上区块链，直接全文塞入链上存储，在成本上对我来说不可接受；取哈希，又要担心换行符在不同系统中表现不一等细节问题，且要手动处理追踪所有文章的变动，显得比较愚笨。</p>
<p>如果我们审视 Git 与区块链的底层数据结构，就会发现一件美妙的事：它们在数学上是相似的。 二者的底层结构，都是<a href="https://en.wikipedia.org/wiki/Merkle_tree">默克尔树</a>与哈希链。</p>
<p>一个短短 20 字节的 Git Commit Hash，天然就是全站所有文章乃至整个分支的密码学浓缩，更折叠了此前整部创作历史。至于换行符规范化、文件变更追踪等脏活累活，本就是 Git 的分内之事。构建阶段直接调用 Git 即可精确回溯任意文章的每一次历史修改，所以文章的 Changelog 无需我额外操心。</p>
<p>第一章里我把正文 <code>foo.md</code> 与元数据 <code>foo.meta.yml</code> 拆开存放，原因之一就是：链上锚定的是 commit 哈希，而访客做文件级核验时比对的是正文的 <code>blob</code> 哈希。将二者剥离后，哪怕我日后频繁修改标签或调整文章的树状继承关系，正文的 <code>blob</code> 哈希也不会变；虽然每次元数据改动仍会产生新的 commit、需要新的锚定，但正文那片默克尔树叶子始终稳定。</p>
<p>然而，Git 虽能完美追踪内容与演化历史，却无法自证。</p>
<p>恰好，区块链（如以太坊及其二层网络 Base）是另一棵由全球分布式节点共同维护的默克尔树。它不仅有哈希链，更有全网共识驱动的、不可逆转的区块时间。既然两者结构同源，只需在每次推送文章时，提取出 Git 的 <code>commit</code> 哈希，将其写入区块链。</p>
<p>这本质上是将 Git 的默克尔树，“嫁接”到了区块链的默克尔树上。</p>
<p>链上只确定“某个 Git Commit 在某个区块时间之前已经存在”，而内容本身的完整性和变化记录则由 Git 管理，分工明确，协作精巧。</p>
<p>为此，我在以太坊二层网络 Base 主网上部署了一个极简的合约 <a href="https://basescan.org/address/0x00000000009de13419d7cff80f6d2e1e992146aa">0x00000000009DE13419D7CFf80F6D2e1e992146aA</a>，负责抛出一个包含了提交者地址与 Git Commit 哈希的事件，方便枚举：</p>
<pre class="shiki shiki-themes github-light github-dark" style="background-color:light-dark(#fff, #24292e);--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;color:light-dark(#24292e, #e1e4e8);--shiki-light:#24292e;--shiki-dark:#e1e4e8" tabindex="0"><code><span class="line"><span>pragma solidity ^0.8.24;</span></span>
<span class="line"><span>contract IcebergAnchor {</span></span>
<span class="line"><span>    event Anchored(address indexed sender, bytes32 indexed commit);</span></span>
<span class="line"><span>    function anchor(bytes32 commit) external {</span></span>
<span class="line"><span>        emit Anchored(msg.sender, commit);</span></span>
<span class="line"><span>    }</span></span>
<span class="line"><span>}</span></span></code></pre>
<p>由于不读写昂贵的链上状态，仅通过抛出事件留痕，单次锚定的成本不到人民币一分钱；又得益于默克尔树环环相扣的祖先承诺特性，只需锚定最新的 HEAD 提交，就等于自动固化了它之前的整条历史提交树。每当我写完文章执行 <code>git push</code>，GitHub Actions 便会自动完成链上锚定，并将信息缓存至仓库独立的 <code>anchors</code> 分支中供离线构建读取。</p>
<p>在这里，<code>anchors</code> 分支只是随时可以丢弃重建的编译期缓存；而链上抛出的事件，则是我自己都无法撤回、无法抹除的真相。</p>
<h3 id="任何访客都有的验证的权利"><a href="#任何访客都有的验证的权利">任何访客都有的验证的权利</a></h3>
<p>在冰山每篇文章的底部，已锚定的修订版本都会公示链上交易链接、Git Commit 哈希以及正文文件的 <code>gitBlobSha1</code>。任何访客只需三步即可完成核验：看一眼链上交易的区块时间与 Commit 哈希，点进 GitHub 对应的历史版本，再比对正文的 Blob 哈希。</p>
<p>如果要造假，则有如下可能：</p>
<ol>
<li>我修改文章正文，同时让修改后的文件在经过 Git 的 SHA-1 默克尔树计算后，得到一模一样的 20 字节 Commit 哈希，并使前后 commit 依然保持连贯。注意，这里要做的不是 SHAttered 那种“生成一对新碰撞文件”的碰撞攻击（约 2^63），而是针对一个已经存在的 commit 的第二原像攻击（给定一个已有哈希，造出另一段内容使哈希相同，约 2^160）；Git 自 2.13 起还内置了 sha1dc 碰撞检测。再加上 Git 还会给对象加上类型与长度头部，以及“改完还得是一篇可读文章”的约束，要同时满足这些条件几乎不可能。</li>
<li>我发动一场史无前例的算力与质押攻击，劫持全球成千上万个以太坊与 Base 验证节点，将长达数年的区块链账本强行回滚并重写历史。</li>
<li>若非我本人，而是黑客想要冒名顶替，他还必须攻破椭圆曲线密码学，在没有私钥的情况下，伪造出我的地址 <a href="https://basescan.org/address/0x000000000007C44d92De38e7CdBA161fE9CfBC4e">0x000000000007C44d92De38e7CdBA161fE9CfBC4e</a> 的数字签名。</li>
</ol>
<p>归谬。</p>
<p>悟已往之不谏，知来者之可追；过往的文字已成为冰山的一部分，既不可改，亦不必改，唯向新处行去。</p>
<p>诚然，这套方案离无瑕的“永恒”仍有一线之隔。</p>
<p>它在实践中足以抵御“篡改”与“伪造”，但在“抗毁灭”的维度上，它仍然依赖 GitHub（及本地 Git 副本）的数据可用性。设想一种同样极端的情况：如果有一天 GitHub 彻底倒闭，且地球上所有克隆过本仓库的硬盘在同一天灰飞烟灭，那么留在以太坊上的那串 20 字节哈希虽然依旧亘古不变，却也将变成一座无人能够解码的孤碑。</p>
<p>在小说《三体Ⅲ·死神永生》里，罗辑高举拐杖，呼喊“把字刻在石头上”的情节我仍记忆犹新。现实中若想永存倒无需如此窘迫，但也必须引入全站默克尔根的链上包含证明乃至去中心化存储协议。不过，就当下的个人博客而言，运用永恒的数学方法，依托于以太坊千亿级资产的基础设施，将思想的哈希锚入全球上万节点的分布式账本，已经是我对抗数字熵增与历史虚无主义的足够坚实的阵地，这是 Web 3.0 独有的浪漫，是冰山的最终含义。</p>
<h2 id="收尾"><a href="#收尾">收尾</a></h2>
<p>有人可能会问：你把元数据强行拆出 Markdown、砍掉所有人都习惯的导航栏、未经允许把全站打包进访客的本地缓存、向以太坊乱写数据，甚至每隔一段时间就让 AI 把网站外观彻底推翻重来——做这些违背行业惯例、不迁就用户习惯的决定，合理吗？</p>
<p>这里是我的个人博客，这些是我的权利。</p>
<p>怀良辰以孤往。</p>
<p>以上。</p><style>
mjx-container[jax="SVG"] {
  direction: ltr;
}

mjx-container[jax="SVG"] > svg {
  overflow: visible;
  min-height: 1px;
  min-width: 1px;
}

mjx-container[jax="SVG"] > svg a {
  fill: blue;
  stroke: blue;
}

mjx-container[jax="SVG"][display="true"] {
  display: block;
  text-align: center;
  margin: 1em 0;
}

mjx-container[jax="SVG"][display="true"][width="full"] {
  display: flex;
}

mjx-container[jax="SVG"][justify="left"] {
  text-align: left;
}

mjx-container[jax="SVG"][justify="right"] {
  text-align: right;
}

g[data-mml-node="merror"] > g {
  fill: red;
  stroke: red;
}

g[data-mml-node="merror"] > rect[data-background] {
  fill: yellow;
  stroke: none;
}

g[data-mml-node="mtable"] > line[data-line], svg[data-table] > g > line[data-line] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node="mtable"] > rect[data-frame], svg[data-table] > g > rect[data-frame] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node="mtable"] > .mjx-dashed, svg[data-table] > g > .mjx-dashed {
  stroke-dasharray: 140;
}

g[data-mml-node="mtable"] > .mjx-dotted, svg[data-table] > g > .mjx-dotted {
  stroke-linecap: round;
  stroke-dasharray: 0,140;
}

g[data-mml-node="mtable"] > g > svg {
  overflow: visible;
}

[jax="SVG"] mjx-tool {
  display: inline-block;
  position: relative;
  width: 0;
  height: 0;
}

[jax="SVG"] mjx-tool > mjx-tip {
  position: absolute;
  top: 0;
  left: 0;
}

mjx-tool > mjx-tip {
  display: inline-block;
  padding: .2em;
  border: 1px solid #888;
  font-size: 70%;
  background-color: #F8F8F8;
  color: black;
  box-shadow: 2px 2px 5px #AAAAAA;
}

g[data-mml-node="maction"][data-toggle] {
  cursor: pointer;
}

mjx-status {
  display: block;
  position: fixed;
  left: 1em;
  bottom: 1em;
  min-width: 25%;
  padding: .2em .4em;
  border: 1px solid #888;
  font-size: 90%;
  background-color: #F8F8F8;
  color: black;
}

foreignObject[data-mjx-xml] {
  font-family: initial;
  line-height: normal;
  overflow: visible;
}

mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG"] use[data-c] {
  stroke-width: 3;
}
</style>]]></content:encoded>
    </item>
  </channel>
</rss>
