小编Abh*_*bhi的帖子

C++ OpenMP代码中的内存泄漏

我编写了一个c ++ openmp代码,它在并行区域中有一个动态分配的内存私有变量,该区域在while循环中.在每个循环中,在并行区域的末尾释放动态分配的内存.我在每次分配和释放后通过linux机器上的/ proc/self/stat文件监视内存.我发现驻留集大小的内存较少.为什么会这样?代码是这样的 -

float *dynm;
while(condition)
{
    pragma omp parallel shared(list of variables) private(dynm)
    {
        read_values_from_/proc/self/stat_print_rss;
        dynm = new float[size]; 
        read_values_from_/proc/self/stat_print_rss;
        pragma omp for schedule(static, chunk) nowait
                for(counter)
        {
            do_operation;
        }
        delete []dynm;
        read_values_from_/proc/self/stat_print_rss;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ memory memory-leaks openmp

3
推荐指数
1
解决办法
685
查看次数

标签 统计

c++ ×1

memory ×1

memory-leaks ×1

openmp ×1