#javascript
#javascript
Вопрос:
Существуют ли особые соображения для реализации шаблона пула объектов в Javascript? Кто-нибудь знает о некоторых существующих реализациях, помимо примера Мэтта Снайдера, для которого я мог бы сравнить производительность?
Комментарии:
1. Я не уверен, что это было бы полезно в JavaScript, поскольку сборщик мусора используется для работы с короткими живыми объектами и оптимизирует их. Если вам не нужен GC, вы можете использовать WebAssembly.
2. Вы предполагаете, что «короткие живые объекты» всегда вызывают остановку мирового GC. Это не так. Я знаю, что они обычно используются в Java, но с моей (самоуверенной) точки зрения: у меня были некоторые проблемы со сборщиком мусора Java, но пока никаких проблем с GCS JavaScript. Может быть, это потому, что я никогда не писал ни одного игрового движка на JS (но на Java)
4. @wiktor поскольку ОП заявил, что ему нужна производительность, я предположил, что речь идет о пулах объектов, используемых во время рендеринга, основная проблема заключается в том, что создание большого количества объектов приводит к запуску GC и вызывает задержки. Я согласен с вами, что вопрос также можно понимать как вопрос о пулах объектов в более широком смысле, но для пулов меньшего размера реализация тривиальна.
5. @TheNimbleSurfer: разве вы не натыкались на технику Javascript со статической памятью ? Связанный пост содержит ссылки на несколько примеров реализаций, которые вы могли бы попробовать.