Visual Studio 2010 C ++:硬编码字符串导致编译时间变慢

时间:2016-08-24 05:19:43

标签: c++ visual-studio

所以我有一个文件花了几分钟来编译,并将其缩小到它包含的事实,粗略地说,几千行硬编码字符串被传递到Qt函数。该文件是从另一个源自动生成的,因此字符串表示要放入Qt控件中以供选择的枚举值。例如:

方法A

mywidget->insertItem("My value 1, string representation of enum value 1");
mywidget->insertItem("My value 2, string representation of enum value 2");
mywidget->insertItem("My value 3, string representation of enum value 3");

...

然后我注释掉了这段代码的一个部分(大约1000行),并替换为:

方法B

const QString myValues[] = { "My value 1, string representation of enum     value 1", "My value 2, string representation of enum value 2", "My value 3,   string representation of enum value 3", ... };

for( int item = 0; item < 1000; ++item ){
    mywidget->insertItem(myValues[item]);
}

方法B编译得更快。为什么?我已尝试使用优化开/关,而优化开启时间更长,即使关闭,编译也需要很长时间才能使用方法A.

编辑:是的,我认为行数会影响编译时间,但我将时间与另一个文件的时间进行比较,该文件大约是代码行数的一半(只有几个硬编码的字符串行)并且它汇编得更快。似乎有问题的文件呈指数级增长。

谢谢, 丹尼尔

0 个答案:

没有答案