关于Proebsting的法律

2022-01-09 22:02:10

一位朋友最近了解了Proebsting的法律,并告诉我掉手。如果您不知道,Proebsting的法律规定:

为了使这个实验有点比较有趣,我要测试LLVM 1.0 - 不幸的是,它只有32位Linux二进制文件,因为缺少32位系统标题,我无法完全工作,而且它在编译一个源文件之一时seguauted。所以我们将测试两个版本的LLVM:

我们将分别编译演示程序的原因是Demo程序使用STL,我不想找到与这些旧编译器兼容的STL版本。

为了获得基本的理解,让我们选择三个算法 - 顶点高速缓存优化,简化和索引解压缩。我们将在以后看起来更接近其他算法的性能,但是在小组上获得版本之间的差异会很好。

我使用以下结果使用-o3重新划分的异常值,这使得差距稍微宽,但仍然很大程度上:

LLVM 11倾向于使用优化编译代码的2倍,结果产生10-20%的代码(在任一方向的偶尔的异常值),与LLVM 2.7超过10岁。这可能是一般规则,特定于高度调整的代码,或特定于网眼Optizizer算法的东西。