такая - нужна обаработка бинарных данных больших обьемов. Есть стрим, из которого идут бинарные данные, данным может быть очень много 3-5гб. Buffer нет возможности .atach данных, т.к. обьем входящих не известен. Buffer.concat - очень плохо, идет копирование области памяти, что занимает много ресурсов. DataView - отличный доступ по getFloat32, getFloat64, getUint32 , но опять проблема - нет расширения. Uint8Array - аналогичная ситуация, нет возможности разширить, либо делать копирование памяти. String - проблема с бинарным доступом
Не совсем понятно, обработка тоже потоковая? Если нет, то возможно подойдёт вариант пушить чанки в обычный массив, а затем Buffer.concat(chunks)
Потоковость не важна, про concat описывал выше - так и делаю, но ОЧЕНЬ много занимает ресурсов, т.к. идет копирование памяти
Странно, а вы сoncat вызываете один раз, или каждый раз когда чанк из стрима прилетает?
Атачей идет очень много. Например, идет 10к блоков объектов, каждый допустим по 100кб, потом идет 1к блоков текстур, каждый по 5-20мб
Есть еще у кого-то предложения как это сделать может?
Если не устраивает вариант, который предлагали (складывать в массив), можно написать код на плюсах
Обсуждают сегодня