我有一些旧的 C 文件,是在 1999 年为较早的人编写的。由于新的编程技术,代码中有一些无用的部分。但我有一个问题。
- 原始文件 => 640 行 --> 0.448秒
- 新文件 => 581 行 --> 0.493秒
我必须使用带有 O3 优化的 Intel C++ 编译器版本 10。除了编译行中的选项和标志外,编译器配置不可自定义。
原始文件和新文件之间的时间差异可能微不足道,但当外推到 5000 个文件时,它会加起来。
我不认为这是编译器的错。
编辑澄清
我必须优化大量 C 文件的编译时间。这些文件包含许多无用的旧代码(#if 0
预处理器代码...)。为了删除所有这些东西,我创建了一个 Python 脚本来检查所有文件并删除所有不需要的代码。
补丁真的很好用。它删除了我想要的所有代码。但是编译时间增加了。我不明白为什么。
编辑#2
我的补丁只删除了由预处理器删除的部分代码,例如#if 0
, 和合并循环。15 个循环,其中 1 行且最大值相同,比 1 个循环内 15 行最差。我对大文件(70000 行)进行了大量测试,节省了 60% 的原始编译时间。我不增加复杂性或其他操作。这是代码清除。