C++ 使用new创建对象和直接使用声明的方式哪个效率高?或者一样?

reme 发布于 2013/12/06 16:46
阅读 1K+
收藏 0
,有谁能解说解说?
加载中
1
喵星人哦
喵星人哦

应该是直接声明快,直接声明的是临时变量,使用栈存储,你的函数被调用时栈已存在,生成的代码中一般会有sub esp, xxx,将栈顶减去一个值,这就是预留了空间给局部变量使用的,当然快了

而new是操作符,内部调用了malloc,又调用了HeapCreate之类的API从堆中分配内存,层层调用,当然没直接声明快了

0
不胜寒
不胜寒

int *i = new int(5);

一个在栈上,一个在堆上。

0
cytzrs
cytzrs
如果从底层说起的话,如果此类变量用的不止一个,当然是用new效率搞一些,因为内存频繁的内存映射很占用系统资源。但如果只用一个自然没有区别
返回顶部
顶部