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