gpt4 book ai didi

c++ - g++ 编译时间是否取决于数组大小?

转载 作者:可可西里 更新时间:2023-11-01 16:37:03 27 4
gpt4 key购买 nike

我有一个包含 3 个数组声明的 C++ 代码。


float A[NUM];
float B[NUM];
float C[NUM];

当我用NUM=512编译时,编译速度很快


时间 g++ -DNUM=512 试验 trials.cpp -lm



0.16s 用户 0.04s 系统 94% cpu 0.219 总计

但是,当我使用 NUM=167772160 进行编译时,它需要更多时间。


时间 g++ -DNUM=167772160 试验 trials.cpp -lm



7.90s 用户 0.69s 系统 99% cpu 8.604 总计

我已经很多年没有使用 C++ 了。我很好奇为什么编译后的目标文件大小相同,但编译时存在时间差异。

最佳答案

这是一个众所周知的难题。在此过程中的某个地方,数组的实际内存将被分配

参见: Linker performance related to swap space?

It would appear that, as we might have suspected, it looks like ld is actually trying to anonymously mmap the entire static memory space of this array (or possibly the entire program, it's hard to tell since the rest of the program is so small, it might all fit in that extra 4096).

还相关:

关于c++ - g++ 编译时间是否取决于数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com