小编Bar*_*ist的帖子

删除指针的时间

喜社区,

我有一个关于删除指针的小问题.

我正在使用Dimension 1024x1024的指针指针矩阵.由于我是动态创建的,因此我在程序结束时删除了为它们分配的空间.但是在通常的循环中执行此操作会花费相当多的时间 - 我使用处理器的时钟速率测量了大约2秒.当程序运行仅15秒时,2秒是巨大的 - 加上:使用这些分配的指针的函数被调用超过一次....

以下是测量的时间关键代码,包括测量:

time=clock();
for(i=0;i<xSize;i++){            //xSize is dynamic, but 1024 for the measurement
    delete [] inDaten[i];
    delete [] inDaten2[i];
    delete [] copy[i];
}
delete inDaten; delete inDaten2; delete copy;
time=clock()-time;
     time/=CLOCKS_PER_SEC;
Run Code Online (Sandbox Code Playgroud)

删除指针总是那么长吗?或者我只是以错误的方式做事?

我希望有人可以帮助我解决这个问题.由于我正在优化一个非常复杂的程序以便更快地运行,因此我无法使用这些2秒的代码.与所有其他部分相比,它的速度太慢了.但我仍然需要能够动态地实现这个代码.SmartPointers可能会有所帮助,但如果我理解正确,他们也需要时间来删除自己 - 只是在不同的时间......

谢谢你的回答!

Baradrist

编辑:我刚刚发现,测量这些删除计算非常慢,因为我没有在发布模式下编译它.由于调试器发挥作用,我测量了这些(最终不真实的)数字让我头疼.最终程序自动优化,以便几乎没有时间参与删除.

无论如何:感谢所有有用的答案!他们给了我很多额外的知识和想法的东西!!!!

c++ pointers memory-management

5
推荐指数
1
解决办法
263
查看次数

标签 统计

c++ ×1

memory-management ×1

pointers ×1