У меня есть приложение, которое часто получает двоичные сообщения по WebSocket (по крайней мере один раз за кадр) и обрабатывает данные, используя canvas/webgl. Я заметил, что у меня неплохой профиль памяти пилы; много недолговечных кусков данных.
Это меня не удивляет, так как я получаю объект от onmessage
, по крайней мере один раз каждые 16 мс, который используется для рисования и затем отменяется.
Мой вопрос: есть ли советы по предотвращению/минимизации этого? Основанный на API WebSocket, похоже, нет альтернативы наличию новой памяти для каждого вызова приема сокета. На другом языке/среде я предварительно выделил некоторую память и получал в этот буфер, чтобы избежать постоянного выделения памяти для короткоживущих объектов, но я не могу придумать какой-либо очевидный способ добиться этого в JavaScript в браузере.
Для справки, вот мое представление Frames.
Я не знаю, является ли это время простоя сборкой мусора? Любые идеи разработчика ниндзя будут очень полезны.