Assembly 使用小数据区的性能损失?

Assembly 使用小数据区的性能损失?,assembly,powerpc,sda,Assembly,Powerpc,Sda,我在看IBM的,特别是第7页的表4 在不使用SDA的情况下,基准测试结果为88kDhry/sec,而在使用SDA的情况下,基准测试结果仅为77kDhry/sec。我希望使用SDA不仅可以减少代码大小,而且可以提高性能,因为访问变量只需要两条指令,而不是三条指令。谁能解释一下表中的数字吗 我错过了什么 我希望它也会更快。可能是一件简单的事情,比如值的意外交换。由于我们无法访问测试程序二进制文件和环境,我只能建议您尝试自己的测试。我发现很少运行dhrystone(或任何基准测试)几乎毫无用处。需要

我在看IBM的,特别是第7页的表4

在不使用SDA的情况下,基准测试结果为88kDhry/sec,而在使用SDA的情况下,基准测试结果仅为77kDhry/sec。我希望使用SDA不仅可以减少代码大小,而且可以提高性能,因为访问变量只需要两条指令,而不是三条指令。谁能解释一下表中的数字吗


我错过了什么

我希望它也会更快。可能是一件简单的事情,比如值的意外交换。由于我们无法访问测试程序二进制文件和环境,我只能建议您尝试自己的测试。我发现很少运行dhrystone(或任何基准测试)几乎毫无用处。需要使用不同级别的优化进行编译。在启动代码中或二进制文件的早期添加或重新排列代码(我通常添加或删除NOP),以调整代码到达缓存线的位置等。使用不同的编译器,同一台机器上同一源代码在同一天的dhrystone性能结果上应具有良好的宽度,任何一个数字都不比从稀薄的空气中拿出数字并报告好多少。只有当dhrystone是您的主要应用程序时,dhrystone才起作用。请投票人说明我的问题有什么问题吗?编译它并区分汇编代码?我没有IBM High C编译器。(我不相信通过实验编程:-)