相关疑难解决方法(0)

具有静态分配的程序的编译时间长

如果有人能告诉我为什么编译这个程序,我真的很感激:

double data[123456789];  
int main() {}
Run Code Online (Sandbox Code Playgroud)

比这个编译要长10倍:

int main() {
    double* data=new double[123456789];
}
Run Code Online (Sandbox Code Playgroud)

两者都编译时:

$ g++ -O0
Run Code Online (Sandbox Code Playgroud)

并且可执行文件的大小几乎相同.

我在Ubuntu 10.04上使用gcc 4.4.3.

谢谢.

gcc

16
推荐指数
1
解决办法
1743
查看次数

g ++编译时间是否依赖于数组大小?

我有一个C++代码,它有3个数组声明.

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

当我编译时NUM=512,编译很快

time g++ -DNUM=512 trials trials.cpp -lm

0.16s user 0.04s system 94% cpu 0.219 total

NUM=167772160

time g++ -DNUM=167772160 trials trials.cpp -lm

7.90s user 0.69s system 99% cpu 8.604 total

但是,当我编译时 float A[NUM]; float B[NUM]; float C[NUM]; ,需要更多时间.

NUM=512

time g++ -DNUM=512 trials trials.cpp -lm

0.16s user 0.04s system 94% cpu 0.219 total

NUM=167772160

我多年没用过C++了.我很想知道为什么编译时存在时间差,尽管编译后的目标文件大小相同.

c++ g++

9
推荐指数
1
解决办法
283
查看次数

标签 统计

c++ ×1

g++ ×1

gcc ×1