我有一个很大的问题,虽然我只有症状和原因的理论。
我在 Windows 7x64 下有一个 C++ 应用程序,它使用对 FFMPEG 0.7.13 的系统调用从视频中提取帧。运行时,父应用程序在内存分析器(任务管理器、RAMMap)中保持了大约 2MB 的良好、可预测的内存占用。我可以看到对 FFMPEG 的个人调用也来来去去,没有发生任何事件。问题是,在对 FFMPEG 进行了大约 100 次调用,并创建了 70,000+ 个 PNG(没有一个目录有超过 1500 个 png)之后,Windows 内存页面大小逐渐从大约 2.5GB 增加到超过 7.0GB,并且系统被带到了它的膝盖。所有用户的进程总和与报告的内存页面量相差无几。
我认为这可能与 Windows Search 索引相关,所以我使用 SetFileAttributes() 和 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 关闭了相关输出目录的索引,虽然它似乎像宣传的那样工作,但似乎并没有解决手头的问题。我目前的运行理论是,所有这些提取的 PNG 都完全或部分通过 FFMPEG 或其他方式映射到内存。我还可以在 RAMMap Physical Pages 选项卡下看到输出 PNG 作为备用映射文件。
问题: - 这里是否有足够的信息来诊断确切的问题?- 我有办法解决这个问题吗?
提前致谢...