随着我们生活质量的提高,可以非常公正的说。是科学和技术在很大程度上塑造了人类的现代生活。其中,软件优化技术的建立更是为我们的生活添砖加瓦。
由于很多CPU的运算延迟是不同的,所以对于重新组合指令,实际上浮点运算在最近的CPU中都是与其他运算分开的,所以不必担心一个整数除法和一个浮点除法会占用同一元件的情况。在C++prime里面好像提到过++x和x++的效率会不一样,不过我感觉编译器应该会根据上下文来优化的。至少我觉得for中的更新变量就完全让编译器统一起来。
减少相关性计算,这个方法是编译器来优化的。可以看下面的指令add r1,r2,#4,add r1,r1,#4,其实完全可以改成一条指令,add r1,r2,#8。当然,这一点对于高级语言来说主要是编译器来做,自己多注意一下还是比较好的。毕竟编译器要做这一点比人来做要难得多,对于运算来说,CPU中只有除法是应当尽量避免的。乘法对于CPU来说效率已经几乎和加减法相近了,所以如果你准备做一些比较极致的优化,尽量从除法入手吧。
一些妨碍编译器优化的因素,安全性,这两种看似是一样的,但是对于编译器来说,如果XP和YP是同一个变量的话,那么执行结果就不一样。f1执行结果为4xp,而f2结果为3xp,函数调用,这个看上去也没什么差别。毕竟不是递归,但是假如分f()中使用了全局变量或静态变量呢?那么差别就大了,比如f(){static int x; return x++;}这样这两个函数的执行结果就不一样了。
即关键路径上执行的语句要尽量少,这里的关键路径指的是和结果运算直接相关的路径。就好比我上面写的ABCD的那四个表达式,当其他语句执行完了,才开始执行r的更新。在r的路径上只有一次更新。
软件优化技术作为现代的技术革新给我们带来了很多便利,它们的存在,同时也对于传统文化的产生了巨大的影响。所以,我们要善于运用这些新科技,善于利用软件优化技术。在现在这个科技发达的时代,我们想要和时光赛跑,就更要学会去更好的利用科技,就更要学会利用这个世界级的业务压力的产品,那就是软件优化技术。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-24 10:32:13
2023-04-21 17:01:47
2022-11-21 11:15:04
2020-03-23 16:47:45
2020-05-18 17:04:39
甄选10000+数字化产品 为您免费使用
申请试用
评论列表