Подтвердить что ты не робот

Как сохранить массив байтов в Javascript

Я собираюсь хранить большой массив байтовых значений (скорее всего, более миллиона) в Javascript. Если я использую обычный массив с нормальными номерами, это займет 8 МБ, потому что числа хранятся как удваиваются IEEE, но если я могу сохранить его в виде байтов, он будет всего лишь 1 МБ.

Я хотел бы избежать тратить столько места по понятным причинам. Есть ли способ хранить байты как байты вместо удвоений? Совместимость с браузером не является проблемой для меня, если она работает в Chrome. Это в HTML5, если это имеет значение.

4b9b3361

Ответ 2

var array = new Uint8Array(100);    
array[10] = 256;
array[10] === 0 // true

Я проверил в firefox и chrome, это действительно массив байтов:

var array = new Uint8Array(1024*1024*50);  // allocates 50MBytes

Ответ 3

Вы можете хранить данные в массиве строк некоторого большого фиксированного размера. Это должно быть эффективным для доступа к любому конкретному символу в этом массиве строк и для обработки этого символа в виде байта.

Было бы интересно увидеть операции, которые вы хотите поддержать, возможно, выраженные как интерфейс, чтобы сделать вопрос более конкретным.