虚拟 DOM 需要为每次渲染构建一棵内存中的节点树,并与旧树进行差异比对,再将差异应用到真实 DOM。这一过程本身会消耗 CPU 和内存,在高频更新场景下尤为明显。
Solid 认为,借助编译器在构建阶段就能确定 JSX 对应的真实 DOM 结构,运行时再走一遍"虚拟 DOM + diff"属于重复劳动。因此它选择把 DOM 结构在编译期固化,运行时直接操作真实节点。
通过信号驱动的依赖追踪,Solid 在更新时已经明确知道"哪些节点需要改",无需通过 diff 去"找出"变化。这从根本上省去了 diff 环节,同时保证更新粒度更细。
去掉虚拟 DOM 后,Solid 的核心运行时体积大幅缩小(gzip 后约 7.6 KB),并在主流性能基准测试中长期位居第一梯队,渲染与内存占用表现接近原生 JavaScript。