1<!doctype html><html lang="zh-CN"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" /><meta name="generator" content="VuePress 2.0.0-rc.26" /><meta name="theme" content="VuePress Theme Plume 1.0.0-rc.192" />
1<script id="check-mac-os">document.documentElement.classList.toggle('mac', /Mac|iPhone|iPod|iPad/i.test(navigator.platform))</script>
1<script id="check-dark-mode">;(function () {const um= localStorage.getItem('vuepress-theme-appearance') || 'dark';const sm = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;const isDark = um === 'dark' || (um !== 'light' && sm);document.documentElement.dataset.theme = isDark ? 'dark' : 'light';})();</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"","image":[""],"dateModified":"2026-06-27T05:19:08.000Z","author":[]}</script>
1<meta property="og:url" content="https://zhenghaoyang.cn/graph/"><meta property="og:type" content="article"><meta property="og:locale" content="zh-CN"><meta property="og:updated_time" content="2026-06-27T05:19:08.000Z"><meta property="article:modified_time" content="2026-06-27T05:19:08.000Z"><meta name="referrer" content="no-referrer">
1<script type="text/javascript">(function(c,l,a,r,i,t,y){ 2 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 3 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 4 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 5 })(window, document, "clarity", "script", "uj3a9lqpl8"); 6 </script>
6<title></title><meta name="description" content="Teacher, I'm on fire to improve!"><link rel="preload" href="/assets/style-CmwToPGT.css" as="style"><link rel="stylesheet" href="/assets/style-CmwToPGT.css"><link rel="modulepreload" href="/assets/app-5QO6NwAE.js"><link rel="modulepreload" href="/assets/index.html-CIOl0TkL.js"><link rel="prefetch" href="/assets/index.html-BDh8PIL4.js" as="script"><link rel="prefetch" href="/assets/index.html-a9AGzS0o.js" as="script"><link rel="prefetch" href="/assets/index.html-C3n082NG.js" as="script"><link rel="prefetch" href="/assets/index.html-C5Q3z384.js" as="script"><link rel="prefetch" href="/assets/index.html-CeaB3Ir-.js" as="script"><link rel="prefetch" href="/assets/index.html-CMUpn1WR.js" as="script"><link rel="prefetch" href="/assets/index.html-BDrOCybn.js" as="script"><link rel="prefetch" href="/assets/index.html-C1MN_WE6.js" as="script"><link rel="prefetch" href="/assets/index.html-B6VWWpiY.js" as="script"><link rel="prefetch" href="/assets/index.html-cvyW7iXm.js" as="script"><link rel="prefetch" href="/assets/index.html-CvNPuAkY.js" as="script"><link rel="prefetch" href="/assets/index.html-YCLU2HML.js" as="script"><link rel="prefetch" href="/assets/index.html-Bk_JCdIe.js" as="script"><link rel="prefetch" href="/assets/index.html-DtG8rz00.js" as="script"><link rel="prefetch" href="/assets/index.html-CdJisH8I.js" as="script"><link rel="prefetch" href="/assets/index.html-CBXkA9od.js" as="script"><link rel="prefetch" href="/assets/index.html-CQ2Ib7fV.js" as="script"><link rel="prefetch" href="/assets/index.html-CEa9-xw2.js" as="script"><link rel="prefetch" href="/assets/index.html-C60HOZHE.js" as="script"><link rel="prefetch" href="/assets/index.html-DZM0zxEX.js" as="script"><link rel="prefetch" href="/assets/index.html-BRdnoeU9.js" as="script"><link rel="prefetch" href="/assets/index.html-D9NysbAi.js" as="script"><link rel="prefetch" href="/assets/index.html-KzNGrjFj.js" as="script"><link rel="prefetch" href="/assets/index.html-Dc41qXAB.js" as="script"><link rel="prefetch" href="/assets/index.html-WjJltBL8.js" as="script"><link rel="prefetch" href="/assets/index.html-BYjxX4dC.js" as="script"><link rel="prefetch" href="/assets/index.html-BMg4Su40.js" as="script"><link rel="prefetch" href="/assets/index.html-BjKNh0nm.js" as="script"><link rel="prefetch" href="/assets/index.html-S6_fy0M9.js" as="script"><link rel="prefetch" href="/assets/index.html-CPKk0gtr.js" as="script"><link rel="prefetch" href="/assets/index.html-CFUV2sPa.js" as="script"><link rel="prefetch" href="/assets/index.html-WAAFFErH.js" as="script"><link rel="prefetch" href="/assets/index.html-CYXP_Z3l.js" as="script"><link rel="prefetch" href="/assets/index.html-Cj25JBst.js" as="script"><link rel="prefetch" href="/assets/index.html-pT8E7Qmg.js" as="script"><link rel="prefetch" href="/assets/index.html-Cto1TEJI.js" as="script"><link rel="prefetch" href="/assets/index.html-BEiPrtDF.js" as="script"><link rel="prefetch" href="/assets/index.html-DXJroR6Q.js" as="script"><link rel="prefetch" href="/assets/404.html-B-mlNjIf.js" as="script"><link rel="prefetch" href="/assets/index.html-DtuVDiin.js" as="script"><link rel="prefetch" href="/assets/index.html-Dm3N-FMV.js" as="script"><link rel="prefetch" href="/assets/index.html-BpUrJUEq.js" as="script"><link rel="prefetch" href="/assets/index.html-D0lodT-G.js" as="script"><link rel="prefetch" href="/assets/index.html-DO7ayuR6.js" as="script"><link rel="prefetch" href="/assets/index.html-B2M7qBWQ.js" as="script"><link rel="prefetch" href="/assets/index.html-BplEdkvv.js" as="script"><link rel="prefetch" href="/assets/index.html-D96JCogB.js" as="script"><link rel="prefetch" href="/assets/index-BJqVeqXy.js" as="script"><link rel="prefetch" href="/assets/index-BGrdjMx-.js" as="script"><link rel="prefetch" href="/assets/index-BPAdBlYL.js" as="script"><link rel="prefetch" href="/assets/photoswipe.esm-CKV1Bsxh.js" as="script"><link rel="prefetch" href="/assets/giscus-CpJ6lC06.js" as="script"><link rel="prefetch" href="/assets/searchBox-default-DqXmK1ya.js" as="script">
6<link rel="prefetch" href="/assets/SearchBox--92Bqety.js" as="script"><link rel="prefetch" href="/assets/chatgpt-BlmCkuzK.js" as="script"><link rel="prefetch" href="/assets/spring-ai-4y4cOk22.js" as="script"><link rel="prefetch" href="/assets/trae-CTF_D6uL.js" as="script"><link rel="prefetch" href="/assets/vuepress-PvtxInO1.js" as="script"><link rel="prefetch" href="/assets/editor.main-DE5seT9A.js" as="script"></head><body><div id="app"><!--[--><!--[--><div class="theme-plume vp-layout" vp-container data-v-582b402e><!--[--><!--[--><!--]--><!--[--><span tabindex="-1" data-v-9cfe71e7></span><a href="#VPContent" class="vp-skip-link visually-hidden" data-v-9cfe71e7> Skip to content </a><!--]--><!----><header class="vp-nav" data-v-582b402e data-v-7f57a66e><div class="vp-navbar" vp-navbar data-v-7f57a66e data-v-387b3c0b><div class="wrapper" data-v-387b3c0b><div class="container" data-v-387b3c0b><div class="title" data-v-387b3c0b><div class="vp-navbar-title" data-v-387b3c0b data-v-0db48969><a class="vp-link link no-icon title" href="/" data-v-0db48969><!--[--><!--[--><!--]--><!--[--><!--[--><!--[--><img class="vp-image dark logo" style="" src="/avatar.jpg" alt data-v-29b2a940><!--]--><!--[--><img class="vp-image light logo" style="" src="/avatar.jpg" alt data-v-29b2a940><!--]--><!--]--><!--]--><span data-v-0db48969></span><!--[--><!--]--><!--]--></a></div></div><div class="content" data-v-387b3c0b><div class="content-body" data-v-387b3c0b><!--[--><!--]--><div class="vp-navbar-search search" data-v-387b3c0b><div class="search-wrapper" data-v-42b147d4><!----><div id="local-search" data-v-42b147d4><button type="button" class="mini-search mini-search-button" aria-label="æç´¢ææ¡£" data-v-42b147d4><span class="mini-search-button-container"><span class="mini-search-search-icon vpi-mini-search" aria-label="search icon"></span><span class="mini-search-button-placeholder">æç´¢ææ¡£</span></span><span class="mini-search-button-keys"><kbd class="mini-search-button-key"></kbd><kbd class="mini-search-button-key">K</kbd></span></button></div></div></div><!--[--><!--]--><nav aria-labelledby="main-nav-aria-label" class="vp-navbar-menu menu" data-v-387b3c0b data-v-24bf781b><span id="main-nav-aria-label" class="visually-hidden" data-v-24bf781b>Main Navigation</span><!--[--><!--[--><a class="vp-link link navbar-menu-link" href="/" tabindex="0" data-v-24bf781b data-v-14a67322><!--[--><!----><span data-v-14a67322>Home</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link" href="/blog/" tabindex="0" data-v-24bf781b data-v-14a67322><!--[--><!----><span data-v-14a67322>Posts</span><!----><!--]--></a><!--]--><!--[--><a class="vp-link link navbar-menu-link active" href="/graph/" tabindex="0" data-v-24bf781b data-v-14a67322><!--[--><!----><span data-v-14a67322>Graph</span><!----><!--]--></a><!--]--><!--[--><div class="vp-flyout vp-navbar-menu-group" data-v-24bf781b data-v-dbac0833><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-dbac0833><span class="text" data-v-dbac0833><!----><!----><span data-v-dbac0833>More</span><!----><span class="vpi-chevron-down text-icon" data-v-dbac0833></span></span></button><div class="menu" data-v-dbac0833><div class="vp-menu" data-v-dbac0833 data-v-ce304df9><div class="items" data-v-ce304df9><!--[--><!--[--><div class="vp-menu-link" data-v-ce304df9 data-v-42998c50><a class="vp-link link" href="/more/friends/" data-v-42998c50><!--[--><!----> åæ
龿¥ <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce304df9 data-v-42998c50><a class="vp-link link" href="/more/projects/" data-v-42998c50><!--[--><!----> æçé¡¹ç® <!----><!--]--></a></div><!--]--><!--[--><div class="vp-menu-link" data-v-ce304df9 data-v-42998c50><a class="vp-link link" href="/more/resources/" data-v-42998c50><!--[--><!----> èµæºå¯¼èª <!----><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!--[--><!--]--><!----><div class="vp-navbar-appearance appearance" data-v-387b3c0b data-v-009af94e><button class="vp-switch vp-switch-appearance" type="button" role="switch" title aria-checked="false" data-v-009af94e data-v-96ecc6a8 data-v-fcc85b7a><span class="check" data-v-fcc85b7a><span class="icon" data-v-fcc85b7a><!--[--><span class="vpi-sun sun" data-v-96ecc6a8></span><span class="vpi-moon moon" data-v-96ecc6a8></span><!--]--></span></span></button></div><div class="vp-social-links vp-navbar-social-links social-links" data-v-387b3c0b data-v-6a552bfb data-v-3284b3cb><!--[--><a class="vp-social-link no-icon" href="https://github.com/zhenghaoyang24" aria-label="github" title="github" target="_blank" rel="noopener" data-v-3284b3cb data-v-0a648984><!----></a>
6<!--]--></div><div class="vp-flyout vp-navbar-extra extra" data-v-387b3c0b data-v-6663133f data-v-dbac0833><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-dbac0833><span class="vpi-more-horizontal icon" data-v-dbac0833></span></button><div class="menu" data-v-dbac0833><div class="vp-menu" data-v-dbac0833 data-v-ce304df9><!----><!--[--><!--[--><!----><div class="group appearance" data-v-6663133f><div class="item appearance" data-v-6663133f><p class="label" data-v-6663133f>å¤è§</p><div class="appearance-action" data-v-6663133f><button class="vp-switch vp-switch-appearance" type="button" role="switch" title aria-checked="false" data-v-6663133f data-v-96ecc6a8 data-v-fcc85b7a><span class="check" data-v-fcc85b7a><span class="icon" data-v-fcc85b7a><!--[--><span class="vpi-sun sun" data-v-96ecc6a8></span><span class="vpi-moon moon" data-v-96ecc6a8></span><!--]--></span></span></button></div></div></div><div class="group social" data-v-6663133f><div class="item social-links" data-v-6663133f><div class="vp-social-links social-links-list" data-v-6663133f data-v-3284b3cb><!--[--><a class="vp-social-link no-icon" href="https://github.com/zhenghaoyang24" aria-label="github" title="github" target="_blank" rel="noopener" data-v-3284b3cb data-v-0a648984><!----></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="vp-navbar-hamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="nav-screen" data-v-387b3c0b data-v-f200129d><span class="container" data-v-f200129d><span class="top" data-v-f200129d></span><span class="middle" data-v-f200129d></span><span class="bottom" data-v-f200129d></span></span></button></div></div></div></div><div class="divider" data-v-387b3c0b><div class="divider-line" data-v-387b3c0b></div></div></div><!----></header><!----><!--[--><!----><!----><!--]--><!--[--><div id="VPContent" vp-content class="vp-content" data-v-582b402e data-v-4fbddb9d><div class="graph-container" data-v-4fbddb9d data-v-ab12a72c><div class="bg-container" data-v-ab12a72c></div><div class="chart-container" data-v-ab12a72c></div><div class="control-container" data-v-ab12a72c><div class="button-item button-hover" title="Reset view" data-v-ab12a72c><!----></div><div class="zoom-container" data-v-ab12a72c><label for="zoom" class="zoom-label" data-v-ab12a72c>1</label><input type="range" class="zoom-slider" min="0.3" max="3" step="0.01" name="zoom" title="Scale graph" value="1" data-v-ab12a72c></div></div></div></div><!--]--><button type="button" class="vp-back-to-top" aria-label="back to top" data-v-582b402e style="display:none;" data-v-a3695283><span class="percent" data-allow-mismatch data-v-a3695283>0%</span><span class="show icon vpi-back-to-top" data-v-a3695283></span><svg aria-hidden="true" data-v-a3695283><circle cx="50%" cy="50%" data-allow-mismatch style="stroke-dasharray:calc(0% - 12.566370614359172px) calc(314.1592653589793% - 12.566370614359172px);" data-v-a3695283></circle></svg></button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" aria-label="sign down" class="vp-sign-down" aria-hidden="true" data-v-582b402e style="display:none;" data-v-51298545><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" data-v-51298545><path d="m19 11l-7 6l-7-6" data-v-51298545></path><path d="m19 5l-7 6l-7-6" opacity="0.6" data-v-51298545></path></g></svg><footer class="vp-footer" vp-footer data-v-582b402e data-v-cf675e27><!--[--><div class="container" data-v-cf675e27><div class="message" data-v-cf675e27>𥼠<a target="_blank" href="https://theme-plume.vuejs.press/">vuepress-theme-plume</a> & âï¸ Hoey</div><!----></div><!--]--></footer><!--[--><!--]--><!--]--></div><!----><!--]--><!--[--><!--]--><!--]--></div>
6<script type="module" src="/assets/app-5QO6NwAE.js" defer></script>
6<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"3a46f52f2b15481e9577e13f38117031","r":1,"spa":2}' crossorigin="anonymous"></script>
6 7</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.