社区
C语言
帖子详情
静态&动态内存分配效率的问题
axs
2002-09-04 09:00:05
正在学习C++,老师说静态分配要比用new速度快一些
可是我不明白new函数到底做了些什么,反正我试着连续申请10000次,程序也没慢
哪位大侠可以讲解讲解?
...全文
408
9
打赏
收藏
静态&动态内存分配效率的问题
正在学习C++,老师说静态分配要比用new速度快一些 可是我不明白new函数到底做了些什么,反正我试着连续申请10000次,程序也没慢 哪位大侠可以讲解讲解?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
用户 昵称
2002-09-07
打赏
举报
回复
以前的如楼上兄弟说的,现在功能加强了
1)静态分配原指在硬盘数据中具有空间
例如我们声明
int c[50000] = { 0 };//程序进入内存时已经建立
和
int c[50000];//程序引导代码执行时建立
原先的编译程序就不同了
如果选中某些优化条件,现在的编译程序太复杂,不懂了。
2)即便是在程序引导代码执行时建立的空间效率也比new的要搞些,这包括
地址重定向等。
axs
2002-09-07
打赏
举报
回复
关于32位的虚存问题,我在林锐博士的 高质量c++编程 中看到过类似的说明
静态内存申请在编译时就已经分配好
而动态申请则在需要时通过new来申请
现在的困惑是 new 和 静态分配(比如使用数组)之间的效率是否相差大到一个不得不考虑的程度。例如TCP/IP协议每次为数据包申请内存和预留一块大内存来保存所有的数据包,这两种方式之间的性能差别是否较大?
zheng_can
2002-09-04
打赏
举报
回复
静态分配的话,是在程序读入内存后就分配空间,在运行的时候,自然就不会花时间在这个上面
用 new 进行动态分配,是在运行的时候分配内存,那自然会导致运行过程慢一点点
耙子
2002-09-04
打赏
举报
回复
to :arcsiny(诺亚方舟)
……对于32位程序而言,new 和 malloc几乎不可能
导致“内存耗尽”。。因为32 位操作系统支持“虚存”,内存用完了,
自动用硬盘空间顶替。
……
这个观点是不对的,32bit的操作系统的寻址空间4G,win32里面实际每个进程的空间是2G,如果你的内存和硬盘足够大,申请到2G程序也不行了。
wqh136
2002-09-04
打赏
举报
回复
如果不是指针 , 则在编译时分配 ;而指针NEW是在运行时分配,故慢,效率底于静态分配的数据对向;
cxjddd
2002-09-04
打赏
举报
回复
new要向系统请求吧。
geeksky
2002-09-04
打赏
举报
回复
楼主请记清,new是操作符,不是函数
mechgoukiteng
2002-09-04
打赏
举报
回复
因为new会通过os申请内存,那么会导致寻找可用内存的过程
arcsiny
2002-09-04
打赏
举报
回复
下面的代码,就是一个试图耗尽内存的程序
void main(void)
{
float *p = NULL;
while(TRUE)
{
p = new float[1000000];
cout << “eat memory” << endl;
if(p==NULL)
exit(1);
}
}
对于new来说是C++的运算符。可用于申请动态内存。
不过,对于32位程序而言,new 和 malloc几乎不可能
导致“内存耗尽”。。因为32 位操作系统支持“虚存”,内存用完了,
自动用硬盘空间顶替。
基于matlab的AGV导航.zip
基于matlab的AGV导航
基于Django框架开发的博客服务端系统_支持文章页面分类目录标签的增删改查操作集成Markdown编辑器和代码高亮功能实现全文搜索与评论管理模块_提供完整的博客内容发布与管理解决.zip
基于Django框架开发的博客服务端系统_支持文章页面分类目录标签的增删改查操作集成Markdown编辑器和代码高亮功能实现全文搜索与评论管理模块_提供完整的博客内容发布与管理解决.zip
Cesium 加载ArcGIS 地图源到国内地图源的切换
最近很多小伙伴发现https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer 服务不再可用,国内大量公司还是使用的这个地图源,因为该地图源与 WGS84 一致或高度兼容的坐标系,地图无法加载实在影响业务,公司紧急加班,终于使用国内地图源解决了这个
问题
,主要是整个底图的偏移
人力资源管理系统_企业级人事管理软件_宏达数据库信息管理开发平台_应聘人员登记_员工档案管理_薪资调整_培训成绩评核_证照到期提醒_员工生日提醒_记事本功能_通知撰写_二次开发支持.zip
人力资源管理系统_企业级人事管理软件_宏达数据库信息管理开发平台_应聘人员登记_员工档案管理_薪资调整_培训成绩评核_证照到期提醒_员工生日提醒_记事本功能_通知撰写_二次开发支持.zip
开关柜多传感器局部放电监测软件_基于Modbus_RTU协议连接TEV超声波UHF传感器实时读取遥测数据和图谱数据并通过图形界面可视化显示_用于电力系统开关柜局部放电状态监测与故障.zip
开关柜多传感器局部放电监测软件_基于Modbus_RTU协议连接TEV超声波UHF传感器实时读取遥测数据和图谱数据并通过图形界面可视化显示_用于电力系统开关柜局部放电状态监测与故障.zip
C语言
70,023
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章