Это деталь реализации. Вы не знаете наверняка, это не имеет значения, это может отличаться для разных платформ, и это может измениться в будущем.
Однако вы можете сделать обоснованное предположение: во-первых, тот факт, что SoundEffectInstance существует и что вы загружаете звуковые файлы в SoundEffect, указывает на то, что SoundEffect, вероятно, отвечает за хранение звукового эффекта в памяти. И существование SoundEffect.FromStream и конструкторов SoundEffect на основе буфера является убедительным признаком того, что SoundEffect должен иметь механизм для хранения звукового буфера в памяти. Поэтому можно с уверенностью предположить, что когда вы загружаете SoundEffect из файла, он использует тот же механизм.
Если это действительно важно, вы можете проверить это, удалив или изменив звуковой файл, после загрузки SoundEffect, а затем создав экземпляр.
Как всегда, если производительность действительно важна, ее следует измерить.
Конечно, при создании SoundEffectInstance выделяются ресурсы (аудио голоса, управляемая и, возможно, неуправляемая память). Так что это не то, что вы должны создавать регулярно, если можете этого избежать, например, путем объединения и повторного использования экземпляров. Когда вы используете SoundEffect.Play, SoundEffect внутренне управляет для вас пулом SoundEffectInstance объектов.
person
Andrew Russell
schedule
15.06.2011