16 c c++ performance language-design compilation
我正在设计一种编程语言,我正在思考的问题之一就是为什么编程语言需要很长时间才能编译.假设c ++需要很长时间,因为它需要在每次编译文件时解析并编译头文件.但是i -heard-预编译的标题需要多长时间?我怀疑c ++不是唯一有这个问题的语言.
Rob*_*lan 15
编译是一个复杂的过程,涉及很多步骤:
(暂且没有链接.)
当然,这需要一些时间用于更长的计划.
Nor*_*sey 10
预编译的头是方式速度更快,因为自从1988年以来,至少知道.
C编译器或C++编译器花费很长时间的常见原因是它必须#include,preprocess,然后才能使用令牌.
作为练习,您可能会发现在典型的头文件集合上运行cpp需要多长时间 - 然后测量输出的lex所需的时间.
gcc -O使用了由Chris Fraser和Jack Davidson开发的非常有效但有些慢的优化技术.大多数其他优化器可能很慢,因为它们涉及对相当大的数据结构的重复迭代.
语言设计确实会对编译器性能产生影响.C++编译器通常比C#编译器慢,后者与语言设计有很大关系.(这也取决于编译器实现者,Anders Hejlsberg实现了C#并且是最好的之一.)
C++的简单"头文件"结构有助于降低其性能,尽管预编译头文件通常可以提供帮助.C++是一种比C语言复杂得多的语言,因此C编译器通常更快.
| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |