Конвертировать между Blobs и ArrayBuffers без копирования? - PullRequest
1 голос
/ 26 февраля 2020

Я не могу найти информацию о производительности в документации по конвертации между ArrayBuffers и Blobs в Javascript. Я считаю, что стандартные методы:

const blob = new Blob([arrayBuffer])

и

const resp = new Response(blob)
const ab = await resp.arrayBuffer()

Обратите внимание, что меня интересуют только BLOB-объекты, находящиеся в памяти, а не основанные на файлах (поэтому я не O время задействовано.) Я сделал несколько моментов времени в коде: https://codepen.io/oberbrunner/pen/ExjWLWY, который показывает, что обе эти операции масштабируются во времени в соответствии с размером ArrayBuffer, поэтому они, вероятно, копируют данные. На самом деле простое создание new Response(blob) занимает больше времени с большим двоичным объектом, если мой временной код точен Кроме того, новая функция Blob.arrayBuffer() также выглядит как O (n), хотя она быстрее, чем способ Response. Но пока еще не поддерживается браузерами в 2020 году.

Итак, мой вопрос: есть ли достоверная документация по ожидаемой производительности этих операций? Я просто использую их неправильно? Существуют ли более быстрые (постоянное время, нулевое копирование) способы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...