为什么大堆栈分配没有时间成本

问题描述 投票:0回答:1

我尝试了这个快速基准测试,我发现分配 200 字节与分配 2000000 字节的时间成本相同。

这怎么可能?

c++ time stack allocation heap
1个回答
0
投票

char buf[ N ]
使
buf
未初始化,即它的所有元素都有未确定的值。因此,在所有三个测试用例中,您实际上并没有初始化数组,而只是分配内存。

要查看实际差异,请添加大括号以对数组进行零初始化,如下所示:

//-----------vv---->added these braces for initilization
char buf[ N ]{};

现在您可以看到这个修改后的演示中的差异了

© www.soinside.com 2019 - 2024. All rights reserved.