2016-05-21 10 views
0

Я создаю какой-то алгоритм сканирования для аудиофайлов. Я использую несколько потоков, которые обрабатывают назначенные сегменты файла. Производительность неплохая, но если я сравниваю ее с API-интерфейсами Transcode Microsoft Media Foundation, она все еще намного медленнее. Поэтому я удалил обработку аудиокадров, так что остался только IO-доступ. Но он все еще намного медленнее MediaFoundation. Поэтому мне было интересно, как возможно, что просто чтение всего файла с помощью FileStream происходит медленнее, чем обработка всего файла с помощью MediaFoundation. Я посмотрел на обработку, используя API Monitor, но результат довольно странный:API локального файла Windows Sytem Access

Я не вижу никакого доступа к файловой системе в API-мониторе (я включил все API доступа к данным на мониторе):

enter image description here

Так есть ли более быстрые интерфейсы, разработчик не может использовать? Что мне не хватает?

ответ

0

Я хотел бы обратить ваше внимание на службу планировщика мультимедийных классов (MMCSS) Windows - MMCSS. MediaFoundation - медиаредактор, оптимизированный для обработки медиаконтента. В результате он мог обрабатывать чтение в определенном оптимизированном режиме. Служба MMCSS имеет следующие имена - режимы: Аудио, Захват, распространения, игры, воспроизведения, Pro Audio, Window Manager

MediaFoundation создает WorkQueue через MFAllocateWorkQueue и выполняет задачу по MFBeginRegisterWorkQueueWithMMCSS