Влияет ли масштабируемость Node.js на сборку мусора при высокой нагрузке? - PullRequest
5 голосов
/ 30 мая 2011

Хотя Node.js является довольно горячей темой, я обнаружил, что сообщается, что Node.js может не подходить для приложения реального времени из-за его модели сборки мусора (http://amix.dk/blog/post/19577).). И некоторые тесты показывают, что Node.js реагирует медленно по сравнению с RingoJS (http://hns.github.com/2010/09/29/benchmark2.html).

. В настоящее время Node.js связан с движком JavaScript V8, в котором используется генерация GC "остановка мира".

Итак, будет ли Node.jsесли бы количество запросов было огромным? Если бы существовала реальная производственная статистика, это было бы лучше.

Спасибо

1 Ответ

2 голосов
/ 11 июля 2011

Стоимость сборки мусора зависит от количества объектов в куче, особенно от количества долгоживущих объектов.Чем больше у вас есть, тем больше времени будет потрачено в GC.

Да, V8 в настоящее время может иногда делать несколько значительных пауз GC, если куча большая.Похоже, что команда V8 работает над минимизацией стоимости каждой паузы GC, распространяя работу.Вы можете увидеть стоимость GC в своих собственных программах узлов, начав с --trace-gc.

. Для многих приложений стоимость GC компенсируется все более превосходным оптимизирующим компилятором.Я бы посоветовал попробовать простую программу и измерить как стоимость GC, как сообщалось в V8, так и измерить время ожидания клиента к клиенту.Я обнаружил, что затраты на сборку мусора практически полностью игнорируются, когда клиенты подключаются через открытый Интернет.

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