Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows:跟踪内存使用情况并限制线程_Windows_Visual Studio 2010_Visual C++_Memory Management - Fatal编程技术网

Windows:跟踪内存使用情况并限制线程

Windows:跟踪内存使用情况并限制线程,windows,visual-studio-2010,visual-c++,memory-management,Windows,Visual Studio 2010,Visual C++,Memory Management,我正在编写一个基于Windows的应用程序,它使用OpenCV库进行图像处理。这是一个多线程应用程序,每个线程加载一个图像并对其进行处理。我的问题是,当图像很大时,内存消耗变得非常高,应用程序崩溃 我希望能够跟踪我的应用程序正在使用的内存量(从应用程序内部),并动态限制正在创建的线程数。在Windows中是否有方法跟踪应用程序正在使用的允许内存量(以及允许的内存量) 我正在使用VC++(Windows7上的VS2010) 我确实查看了一些问题,如和,但没有找到任何允许从应用程序本身进行跟踪的问题

我正在编写一个基于Windows的应用程序,它使用OpenCV库进行图像处理。这是一个多线程应用程序,每个线程加载一个图像并对其进行处理。我的问题是,当图像很大时,内存消耗变得非常高,应用程序崩溃

我希望能够跟踪我的应用程序正在使用的内存量(从应用程序内部),并动态限制正在创建的线程数。在Windows中是否有方法跟踪应用程序正在使用的允许内存量(以及允许的内存量)

我正在使用VC++(Windows7上的VS2010)


我确实查看了一些问题,如和,但没有找到任何允许从应用程序本身进行跟踪的问题。这可能吗?任何指导原则都会有帮助。

不知道这是否会对内存消耗产生严重影响,但如果您还没有这样做,则值得检查


创建线程时,如果不指定堆栈大小,系统将使用与主线程相同的数量。这可能是1MB。您可能不需要大堆栈,因此尝试传递32k、64k、128k…

一种方法是通过在主线程中保留单个内存池来集中内存分配,并使工作线程等待(如果需要)直到内存空闲。这听起来是一种很好的方法。我会查这个的。