- for each codepoint directly on utf8-buf
npm install nv-string-utf8buf-foreach- for each codepoint directly on utf8-buf
##
* 速度:比 Node.js 标准的 Buffer.toString() -> for...of 遍历快 2.68倍。
* 零内存分配:直接在 Uint8Array 上进行位运算提取码点,避免了大字符串对象产生的 GC 压力。
* 流式支持:内置跨 Chunk 补偿逻辑,完美处理被切断的多字节字符(Emoji/中文)。
基于 10.00 MB 的混合文本 Buffer,在 Node.js 1000 轮测试下的对比结果:
| 方法 | 平均耗时 (Avg) | 最佳耗时 (Best) |
| :--- | :--- | :--- |
| Node Standard (toString + for-of) | 107.10 ms | 84.60 ms |
| Mach Direct (for_each_cpt) | 33.88 ms | 31.52 ms |
``javascript
const for_each_cpt = require("nv-string-utf8buf-foreach");
let remainder = null; // 用于存储跨 chunk 的残余字节
// 模拟流式输入
function onData(chunk) {
remainder = for_each_cpt(chunk, (cpt) => {
console.log("解析出码点:", cpt);
// 在此处驱动你的状态机
}, remainder);
}
const str = u8a.toString('utf8');
for (let char of str) {
const cpt = char.codePointAt(0);
// 在此处驱动你的状态机
}
``