频繁new和delete对程序效率的影响

oysc1991 2011-11-14 05:13:48
在一个for循环里频繁new/delete对程序运行效率影响大吗,为了防止无法申请连续大空间,都是用的多维指针,但是运行一段时间后还是报错:应用程序发生异常unknown software exception……内存破碎会造成这种错误码?
...全文
890 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaohua1210 2011-11-14
  • 打赏
  • 举报
回复
可以用内存池,
oysc1991 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 qscool1987 的回复:]
........我错了
是有问题
C/C++ code

#include <iostream>
using namespace std;

int main()
{
for(int i = 0;i < 1000000;i++)
{
for(int j = 0;j < 1000000;j++)
{
i……
[/Quote]
你用多维指针就可以,但是引起内存破碎会让程序内存越来越小,我主要担心这个问题。
qscool1987 2011-11-14
  • 打赏
  • 举报
回复
可能是我的循环次数太大要等待很长时间吧,释放适当相比应该没问题
qscool1987 2011-11-14
  • 打赏
  • 举报
回复
........我错了
是有问题

#include <iostream>
using namespace std;

int main()
{
for(int i = 0;i < 1000000;i++)
{
for(int j = 0;j < 1000000;j++)
{
int *p = new int[10000000];
delete [] p;
}
}
cout << "hello" << endl;//--->>到不了这里
return 0;
}
oysc1991 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hnuqinhuan 的回复:]
引用 7 楼 oysc1991 的回复:
引用 1 楼 healer_kx 的回复:
看这个频繁的度了。。。

大概几千乘以几千次循环。

这样的话你的内存都会崩掉 没那么多的空间给你分配
[/Quote]
但在一次循环内new后用完就delete了,而且多维指针也不是连续的地址空间,每一块还是比较小的。
qscool1987 2011-11-14
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
for(int i = 0;i < 1000000;i++)
{
for(int j = 0;j < 1000000;j++)
{
int *p = new int[10000000];
delete [] p;
}
}

return 0;
}

我这个应该够黑人了吧,但是没有问题,这个只是释放适当应该不会有问题吧
無_1024 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 oysc1991 的回复:]
引用 1 楼 healer_kx 的回复:
看这个频繁的度了。。。

大概几千乘以几千次循环。
[/Quote]
这样的话你的内存都会崩掉 没那么多的空间给你分配
無_1024 2011-11-14
  • 打赏
  • 举报
回复
怎么说呢这个看具体情况
new和delete是一种大众化的重载 可是适用于所有的情况 对于一些简单的类型的new和delete的效率会比较高 但是针对一些自己定义的 或者一直一些特殊情况的new和delete也许就要重写函数了 一般的情况下用原来的就行了
oysc1991 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
看这个频繁的度了。。。
[/Quote]
大概几千乘以几千次循环。
iamnobody 2011-11-14
  • 打赏
  • 举报
回复
能避免就避免呗。。。
自由 2011-11-14
  • 打赏
  • 举报
回复
我觉得问题应该出在你析构函数里没有正确释放某些资源,计算机通常还是比较强力的
luciferisnotsatan 2011-11-14
  • 打赏
  • 举报
回复
频繁new/delete肯定不会出unknown software exception这个问题
tompaz 2011-11-14
  • 打赏
  • 举报
回复
没啥影响吧,如果new delete的大小都是差不多的话
healer_kx 2011-11-14
  • 打赏
  • 举报
回复
看这个频繁的度了。。。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧