Как старый роутер съел 2.5 ГБ ОЗУ в моей вкладке, или cетевой инфаркт асинхронного кода
Интро Это история о том, как «кривой» роутер научил меня смотреть на память браузера иначе. Есть вкладка с ИИ-чатом, есть WebSocket/Streaming, есть обычный i5. И есть момент, когда все это превращается в кирпич: вкладка раздувается до гигабайтов, процессор залипает, страница оживает только на пару минут после перезагрузки. Лид Проблема оказалась не в нейросетях и не в JS. Виновник — старый домашний роутер, который не вывозил IPv6 и фрагментацию. Итог — застрявшие пакеты, нарастающий буфер в браузере и тысячи незавершенных async/await -машин в памяти. TL;DR - Вкладка с WebSocket раздувается из-за сетевых затыков. - Роутер ломает MTU/IPv6, пакеты зависают, bufferedAmount растет. - Асинхронные цепочки не завершаются и копятся в Heap. - Фикс: MTU 1400 + отключение IPv6. - В коде: мониторинг bufferedAmount , таймауты и AbortController . Симптом - Вкладка с ИИ-чатом пухнет до 1–2.5 ГБ. - CPU уходит в 100%, интерфейс замирает. - Перезагрузка помогает на 5 минут, дальше все повторяется.
https://habr.com/ru/articles/988398/
#websocket #javascript #network #performance #asyncawait #memory
