【发布时间】:2013-06-14 11:12:49
【问题描述】:
我正在编写一个基于 Windows 的应用程序,它使用 OpenCV 库进行图像处理。这是一个多线程应用程序,每个线程加载一个图像并对其进行处理。我的问题是,当图像很大时,内存消耗会变得非常高,应用程序会崩溃。
我希望能够跟踪我的应用程序正在使用的内存量(从应用程序内部)并动态限制正在创建的线程数。 Windows 中有没有办法跟踪应用程序使用了多少允许的内存(以及我将被允许使用多少)。
我正在使用 VC++(Windows 7 上的 VS2010)。
我确实查看了一些问题,例如 this 和 this,但找不到任何允许从应用程序本身进行跟踪的问题。这可能吗?任何指南都会有所帮助。
【问题讨论】:
-
一种方法是通过在主线程中保持一个内存池来集中内存分配,并让工作线程等待(如果需要)直到内存可用。
-
这听起来是个不错的方法。我会查一下这个。
标签: windows visual-studio-2010 visual-c++ memory-management