Является ли midiOutPrepareHeader быстрым вызовом?
Вопрос
midiOutPrepareHeader, midiInPrepareHeader просто настраивают некоторые поля данных или делают что-то более трудоемкое?
Я пытаюсь решить, создавать ли и уничтожать MIDIHDR по мере необходимости или поддерживать их пул.
Решение
У вас действительно есть только два способа определить (без исходного кода Windows):
1) Составьте его профиль.В зависимости от ваших выводов о том, сколько времени это займет, установите таймер только для отладки, который регистрирует, когда внезапно требуется больше времени, чем вы считаете приемлемым для вашего приложения, или используйте свое решение для пула.Хотя в документах сказано не изменять буфер после вызова функции prepare, и, похоже, если вы захотите использовать его повторно, вам, возможно, придется его изменить.Я недостаточно знаком с документами, чтобы так или иначе сказать, сработает ли предложенное вами решение.
2) Пройдитесь по сборке и посмотрите.Не бойся.Получите MSFT публичные символы и посмотрите, похоже ли это на простое заполнение полей или это делает что-то сложное.