[英]How to read a struct from a JS ArrayBuffer efficiently (browser)?
假設我有一個形式的結構
typedef struct {
uint32_t intensity;
uint16_t ring;
float32_t x;
float32_t y;
float32_t z;
} Point;
(總共 18 個字節),我在 ArrayBuffer 中有一個巨大的數組,其中包含數萬個這些 18 字節的結構。
如何有效地遍歷它們而不會在循環中惱怒地調用“new DataView()”構造函數?
這是在瀏覽器中,而不是 NodeJS。
每次讀取值時無需創建新的DataView
。 只需創建一次並使用offset
讀取特定位置的數據:
let dv = new DataView(buffer);
let offset = 0;
while (offset < buffer.byteLength) {
intensity = dv.getUint32(offset); offset += 32;
ring = dv.getUint16(offset); offset += 16;
// etc
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.