Это действительно общий вопрос, основанный на учебе, а не техническая проблема.
Я делаю игру в Unity. Игра включает в себя множество довольно сложных процессов с высокими объектами и, как таковые, я генерирую много мусора. Поскольку все, кто занимается играми, использующими управляемый код, знают, что шипы для сбора мусора являются ОГРОМНЫМ buzzkill. Я также пытаюсь настроить таргетинг на мобильные устройства, поэтому эта боль усиливается.
Моя цель проста: отследить процедуры, которые генерируют большинство мусора и пула, и повторно использовать объекты, чтобы уменьшить нагрузку на сборщик мусора. Я занимаюсь всеми очевидными классами, но мои проблемы с GC сохраняются. Если кто-то может предложить здесь большую мудрость, пожалуйста, принесите его.
То, что я не смог отслеживать в своих исследованиях, - это хороший способ измерить нагрузку GC и выявить проблемы в самом коде. Я могу получить метрики из Unity и классов диагностики о размере пула памяти (хотя я не эксперт в отношении того, что действительно имеет значение для любого из этих чисел), и я могу отобразить общее количество коллекций GC, которые произошли с самого начала, но мои знания об отладке этой проблемы заканчиваются там.
Я знаю, что ДОЛЖНЫ быть более эффективными способами решения этой проблемы. Может ли кто-нибудь указать мне на нужные инструменты или классы инфраструктуры (или библиотеки?), Которые могут помочь мне здесь? Я видел некоторое упоминание о программе отладчика (sgen?), Которая является частью Mono, но я не могу найти загрузку или не говоря уже о том, как подключить ее к игре Unity.
Любая помощь будет принята с благодарностью. Спасибо.