VS2019 16.2: 新版本对游戏性能的优化( 五 )
以下是函数的反汇编代码 , 左边为16.0 , 右边为16.2 。 编译为x64模式 , 开启AVX2选项 。
从上图我们可以看到 , 16.0对所有的intrinsics逐一生成了代码 , 而16.2可以更加智能的识别intrinsics并将乘法和加法操作合并到FMA指令中去 。 在将来的16.3/16.4版本中 , 我们还将看到更多类似的优化点 。
即使是现在 , 对于一个给定的常量 , 代码生成也会呈现出上述的特征:
从上面的反汇编中 , 我们可以看到:在16.0中 , 编译器逐一地生成代码 , 而在16.2中 , 编译器可以在编译期就计算出值(这里使用了/fp:fast编译选项) 。
更多的FMA模式
对于FMA生成 , 编译器按照如下规则进行代码生成:
也做了如下的FMA简化:
推荐阅读
- 德鲁伊|《炉石传说》:新版本硬核实力谁最强?德鲁伊才是大BOSS!
- 原神|原神:新版本直播送300原石!新版本卡池公布,阿贝多和优菈复刻
- 永劫无间|《永劫无间》新版本道具太过变态,或将导致游戏凉凉?
- 原神|原神:别再喊长草!新版本到来前,有很多东西要准备
- 中单|双11来袭,《卧龙吟》节日新版本现世 满满的诚意满满的实惠!
- |新版本魅力值拿捏到位,三代雷影很不适应,半蛇兜还能上场!
- 上古卷轴6|元气骑士:新版本爆料,弱势角色技能加强,3大职业强度下调
- |《哈利波特:魔法觉醒》新版本哈利卡组试玩心得
- 阴阳师|除了爱玩游戏的新岛民,《动物森友会》新版本还有一个电竞彩蛋
- |和平精英新版本到来!和平之翼6点需注意,阿神:失重战区可一试