簡體   English   中英

如何有效地從 JS ArrayBuffer 讀取結構(瀏覽器)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM