Axe*_*rja 3 c++ linux memory multithreading openmp
程序:
我为大量数据创建了一个C++计算程序,可以在一个或多个线程上运行.(通过配置文件)
程序环境如下:C++,OpenMp,Redhat-x64,malloc/free
Linux上的结果:
Windows上的结果:
题:
为什么在Linux上使用更多线程时内存消耗会增加?
一个公平的猜测是,delete
Linux将缓存已发布的内存以备将来的new
请求,就像在Windows上一样,但Linux每个线程都有一个缓存,而Windows每个进程都有一个缓存.
(更准确地说,将是C++运行时库确定这样的缓存如何工作).