Javascript Производительность модификации ArrayBuffer - PullRequest
1 голос
/ 11 марта 2020

Я хочу изменить содержимое ArrayBuffer в JavaScript.

Из раздела справки:

Вы не можете напрямую манипулировать содержимым ArrayBuffer; вместо этого вы создаете один из объектов типизированного массива или объект DataView, который представляет буфер в указанном формате c, и используете его для чтения и записи содержимого буфера.

Я надеваю Мне не нужно ничего печатать на консоли, мне просто нужен ArrayBuffer с некоторыми измененными байтами.

Итак, если у меня большой ArrayBuffer:

const buffer = new ArrayBuffer(16*1024);

Какой из них более эффективен:

const typedArray1 = new Uint8Array(buffer);
typedArray1[16000] = 65;

const typedArray2 = new Uint8Array(buffer,16000);
typedArray2[0] = 65;

const typedArray3 = new Uint8Array(buffer,16000,1);
typedArray2[0] = 65;

const dataView1 = new DataView(buffer);
dataView1.setUint8(16000, 65);

const dataView2 = new DataView(buffer, 16000);
dataView2.setUint8(0, 65);

const dataView3 = new DataView(buffer, 16000, 1);
dataView3.setUint8(0, 65);
...