2 分•作者: itsmeadarsh•5 天前
我开发了最快的 React 虚拟化库。核心部分用 Rust 编写,并编译成 WebAssembly。<p>在线演示:<a href="https://warper.tech" rel="nofollow">https://warper.tech</a><p>1000 万行数据,120+ FPS。无卡顿,无掉帧。<p>现有的库,如 react-window 和 react-virtuoso,在处理大规模数据时会遇到瓶颈。它们依赖 JavaScript 二分查找和 O(n) 扫描来处理可变高度。而 Warper 不同。<p>该引擎使用:<p>- 树状数组(Fenwick trees)进行 O(log n) 可变高度查找
- O(1) 算术运算处理固定高度的条目
- WASM 和 JS 之间零拷贝的类型化数组
- 预分配的内存池,滚动时零垃圾回收<p>在 M1 MacBook Pro 上对 100 万行数据进行基准测试:Warper 达到 119 FPS。react-virtuoso 降至 58 FPS。在 1000 万行数据时,Warper 保持在 118 FPS,而 virtuoso 降至 31 FPS。<p>它不仅仅是略快,而是快 2-4 倍,具体取决于工作负载。<p>权衡是包大小:大约 45KB,而 react-window 是 6KB。如果你需要性能,这是值得的。<p>可通过 GitHub Sponsors 获取,网址为 github.com/sponsors/itsmeadarsh2008<p>欢迎就架构问题进行提问。