2024年基本运算性能无差,为何?

1个回答

写回答

chloeM

2026-02-14 14:03

+ 关注

在2024年,C语言与2024年的x86、arm、riscv搭配时,只要分支可预测,乘法和移位在性能上就不会有差异。在8086、80286、80386、80486那个时期,编译器不够智能,而且处理器性能欠佳,某些指令确实会影响效率。例如,对于一个32位整数乘以常数45,用乘法指令大概需要十个周期左右,而使用lea指令先乘以5再乘以9的话,大概只需3个周期,速度快很多。不过,C语言里a = a * 45这种情况,在什么条件下会被编译成imul(乘法指令)?哪怕是1998年的VC6也不会出现这种低级错误。要是学生编写一个以80486为目标的简易C编译器倒有可能。但到了2024年,就算编译成了imul指令,在core处理器上会慢吗?不会的,core处理器上有乘法器,乘法最多三个周期,甚至更快。在这种基本运算方面想要节省时间基本做不到,提高代码的可读性才是关键。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号