C# 最小化DirectShow内存消耗
因此,我有一个应用程序,它通过一个局域网连接流式传输两个视频源。每个视频都有自己的滤波器图,将视频通过解码滤波器和有限针T形滤波器,然后有一个GMFBridge滤波器,用于使用WM ASF滤波器打开/关闭记录。还有一个视频渲染器使用不同的tee过滤器输出 现在,这一切都没有问题,但是整个应用程序的内存消耗远远超过80MB,并且在录制打开时可以达到100多个 我想知道是否有一些减少DirectShow内存消耗的技巧 我正在通过DirectShowLib互操作库使用C#(.NET2.0)中的DirectShowC# 最小化DirectShow内存消耗,c#,.net,memory,directshow,C#,.net,Memory,Directshow,因此,我有一个应用程序,它通过一个局域网连接流式传输两个视频源。每个视频都有自己的滤波器图,将视频通过解码滤波器和有限针T形滤波器,然后有一个GMFBridge滤波器,用于使用WM ASF滤波器打开/关闭记录。还有一个视频渲染器使用不同的tee过滤器输出 现在,这一切都没有问题,但是整个应用程序的内存消耗远远超过80MB,并且在录制打开时可以达到100多个 我想知道是否有一些减少DirectShow内存消耗的技巧 我正在通过DirectShowLib互操作库使用C#(.NET2.0)中的Dire
干杯我对w/a.NET应用程序的第一个建议是不要信任任务管理器。使用性能监视器并添加专用字节计数器。这将告诉你你的真实内存使用情况
另一个注意事项是,由于您使用的是第三方过滤器(封闭源代码),因此除了降低视频分辨率和帧速率之外,实在没有其他降低内存使用率的选项。这些是实时流吗?您可以尝试通过调用图形上的SetSyncSource(null)来禁用时钟。您使用的是什么windows平台,其中100 MB被认为是很多?XP-自定义硬件-用户交互可以在任何地方持续长达6小时。我在这里关注的是加载/重新加载过滤图时内存中的潜在跳跃,而不是高内存消耗的任何单一实例。我已经做了单独的过滤测量,我认为第三方组件是问题所在,正如您所说。因为指出这一点而被接受。