Минимизация потребления памяти DirectShow

Итак, у меня есть приложение, которое транслирует два источника видео по локальной сети. Каждое видео имеет свой собственный граф фильтров, пропускает видео через фильтр декодирования и фильтр Inifinite Pin Tee, а затем есть фильтр GMFBridge, который используется для включения / выключения записи с использованием фильтра WM ASF. Также есть видео-рендерер, работающий на другом выходе тройникового фильтра.

Теперь все это работает без проблем, однако потребление памяти для всего приложения превышает 80 МБ и может достигать более 100 при включенной записи.

Интересно, есть ли какие-нибудь советы по минимизации потребления памяти DirectShow?

Я использую DirectShow из C # (.NET 2.0) через библиотеку взаимодействия DirectShowLib.

Ваше здоровье


person Alistair Evans    schedule 28.09.2009    source источник
comment
Это прямые трансляции? Вы можете попробовать отключить часы, вызвав SetSyncSource (null) на графике.   -  person Shay Erlichmen    schedule 28.09.2009
comment
Какую платформу Windows вы используете, где 100 МБ считается много?   -  person Alan    schedule 05.10.2009
comment
XP - специальное оборудование - взаимодействие с пользователем может продолжаться до 6 часов. Меня больше беспокоят потенциальные скачки в памяти при загрузке / перезагрузке графа фильтра, чем любой единичный случай высокого потребления памяти.   -  person Alistair Evans    schedule 06.10.2009


Ответы (1)


Мое первое предложение с приложением .NET - не доверять диспетчеру задач. Используйте монитор производительности и добавьте счетчик байтов личного пользования. Это скажет вам ваше истинное использование памяти.

Еще одно замечание: поскольку вы используете сторонние фильтры (с закрытым исходным кодом), на самом деле нет никаких вариантов для снижения использования памяти, кроме снижения разрешения видео и частоты кадров.

person Jeremiah Morrill    schedule 30.09.2009
comment
Провели индивидуальные измерения фильтров, я думаю, что проблема заключается в сторонних компонентах, как вы говорите. Принято указывать на это. - person Alistair Evans; 02.10.2009