配置

针对您的特定用例优化 Taffy。

Taffy 开箱即用,但您可以根据性能、精度或资源约束进行调优。

容量预分配

如果您大约知道需要多少节点,可以使用容量初始化树以减少内存重新分配并提高启动性能。

Loading Preview…

舍入设置

控制布局值是吸附到整数(像素)还是保持精确浮点数。

设置函数描述
启用舍入tree.enableRounding()默认。将值舍入到最近的像素。防止 UI 中出现模糊边框。
禁用舍入tree.disableRounding()使用高精度浮点数。最适合矢量图形或可缩放 UI。
Loading Preview…

内存管理

在支持 FinalizationRegistry 的环境中,绑定会在 TaffyTree、Style、Layout 和 TaffyError 对象被回收后清理它们持有的 WASM 分配。回收时机不确定;没有 FinalizationRegistry 时不会自动执行这一步。

为了防止 WASM 堆中的内存峰值或泄漏,您应该显式管理内存:

  • 重用: 使用 .clear() 清空节点结构并保留节点存储容量,减少重建树时的部分分配开销。
  • 销毁: 如果您完全完成了树的使用并希望立即释放其内存,请使用 .free()。

clear() 重置节点结构并保留容量,不是释放所有资源的替代品。当前引擎在 clear() / remove() 时可能仍保留已关联的 context 引用;需要释放整棵树持有的这些引用时,使用 tree.free()。

创建节点或调用 setStyle() 后,树已经复制了样式,可以释放不再使用的输入 Style。getStyle()、getLayout() 和测量回调中的样式都是独立对象,也应在使用完毕后调用 .free();释放树不会释放这些仍由 JavaScript 持有的副本。释放后的对象不能再次使用。

const tree = new TaffyTree(); // ... 使用树 ... // 选项 1:重用树(推荐) // 清除所有节点并保留节点存储容量 tree.clear(); // 选项 2:完全释放 tree.free();

下一步

© 2026 ByteLand Technology Limited