依赖预构建是什么
Vite 启动时把 CommonJS/UMD 依赖预转换成 ESM,缓存到 node_modules/.vite。改了依赖配置却没生效?八成是缓存没清。
HMR 与打包优化
开发态靠 ESM 按需加载所以快,生产态还是要 Rollup 打包。理解了这一点,"为什么开发好好的上线就挂"就有了答案。
Vite 启动时把 CommonJS/UMD 依赖预转换成 ESM,缓存到 node_modules/.vite。改了依赖配置却没生效?八成是缓存没清。
开发态靠 ESM 按需加载所以快,生产态还是要 Rollup 打包。理解了这一点,"为什么开发好好的上线就挂"就有了答案。
jstack 看线程在干什么,jmap 看堆里装了什么,jstat 看运行时在变什么,jcmd 是统一入口。四把刀各管一段,配合着用没有查不动的现场。
一行 GC 日志里塞着七种信息:谁触发的、收了哪、停了多久、活了哪些。加上 -Xlog 配置,再加上日志分析工具,GC 不再是只能盯监控曲线的黑盒。
百 G 大堆停顿不到一毫秒,靠的是把搬家全部挪到并发阶段——着色指针让引用自带状态,读屏障让搬运中的对象依然可访问。代价是吞吐与内存,收益是停顿与堆大小解耦。
评论 (0)