【发布时间】:2011-03-28 05:25:42
【问题描述】:
众所周知的常识是,对于大多数算法来说,在堆栈上分配和释放数据要比在堆上快得多。在C++中,代码的区别是这样的
double foo[n*n]
对比
double* foo = new int[n*n]
但是,在访问和计算位于堆上或堆栈上的数据时,有什么显着差异吗? IE。有速度差异吗
foo[i]
代码应该在几种不同的架构上运行,因此尝试和测量是行不通的。
【问题讨论】:
-
如果有帮助,here's 是一个简单的基准测试,它只读取和写入大数组的每个元素。在我的机器上,当数组在堆栈上时,它的运行速度至少快 5 倍。
标签: performance heap-memory stack-memory