Может ли графический драйвер вызвать утечку памяти в моем приложении?

У меня есть приложение .NET WPF, которое использует библиотеку C ++ / CLI, которую мы написали для управления видео через библиотеки Microsoft Media Foundation.

При мониторинге счетчика производительности частных байтов на различных устройствах этот счетчик остается стабильным в течение нескольких недель. Однако в системе с графикой Intel GMA3650 этот счетчик производительности увеличивается с заметной и постоянной скоростью, когда приложение работает (воспроизводит видео). Если я отключаю Aero, переключаясь на тему Windows 7 Basic, этот счетчик заметно лучше, хотя и с небольшим и постоянным увеличением stll.

Код C ++ / CLI в основном выполняет основные функции управления транспортировкой видео, а также добавляет / удаляет сегменты видео из последовательности. Он также делает снимок текущего видео через IMFSourceReader::ReadSample,

Похоже, этот драйвер вызывает утечку памяти в моем приложении, но я даже не уверен, возможно ли это. Являются ли все приложения уязвимыми для утечек памяти в каких-либо базовых библиотеках операционной системы или библиотеках, используемых ОС при выполнении приложения?

0

Решение

Любая часть программного обеспечения, которая может выделить память в виртуальном адресном пространстве ваших процессов, способна вызвать утечку памяти. Драйверы могут распределять память таким образом с помощью таких функций, как ZwOpenSection, Следовательно, они могут вызвать утечку памяти в процессе

Теперь, только потому что это может утечь память, не означает, что это действительно утечка памяти. Скорее всего, в вашем приложении есть ошибка. Первый шаг — профилировать и выяснить, какая память просачивается, и двигаться дальше.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]