Повторно используйте объекты как можно чаще.Если вы создаете десятки объектов (например, векторов и матриц) для каждого визуализированного кадра, то вы обязательно получите заикание, связанное с ГХ.Поэтому, когда вы используете подход, основанный на графе сцены, для рендеринга вашей игры, вы можете, к примеру, кэшировать объекты в узлах графа сцены.Или вы можете использовать Pattern Pool Pattern .В других языках, таких как Java, эта техника устарела, потому что создание объектов и сборщик мусора сегодня настолько быстры, что пул объектов больше не помогает.Но в JavaScript это все еще может помочь.
У меня были проблемы с GC-заиканием в игре JavaScript, которую я написал в прошлом году, и я решил ее, переписав свой 2D-векторный движок, поэтому абсолютно никаких новых объектов не создается во время рендеринга кадров.Объекты создаются только один раз, когда сцена строится или к ней добавляются новые узлы сцены.Но отображение и анимация сцены не создают абсолютно никаких новых объектов.
Вы можете взглянуть на мой 2D-движок:
http://www.ailis.de/~k/hg/javascript/twodee/file/tip/src/main/javascript/twodee
Вы заметите, чтоЯ кэшировал временно необходимые векторы и матрицы в статических полях и что я использовал изменяемые классы векторов и матриц вместо неизменяемых, поэтому существующие векторы / матрицы модифицируются вместо создания новых векторов / матриц результата при выполнении математических операций с ними.