|
https://club.gizwits.com/thread-169672-1-1.html在此篇文章中,介绍了开启ch307硬件浮点计算单元的方法。我们知道开启这个功能是能带来性能提升的,但是很少有说明性能提升多大的,下面我们来测试一下大概的性能提升。
我们编写4个函数,分别用于计算浮点的加减乘除,每种10000次计算,数值都保证不会溢出float的范围。
接下来,我们初始化一个定时器,以1微秒的计数周期进行计算,来计算每个函数运行的时间。1us的计数周期采用的分频系数是96-1。
初始化后,我们不使能定时器,另外编写函数用于开启和关闭定时器,并且输出计数值。
接下来,我们在main函数里调用计算的函数和统计时间的函数。
最后,我们通过切换不同的配置,通过串口观察计算耗费的时间,注意配置里不对代码进行优化。
未开启硬件浮点计算单元的运算耗时:
开启硬件浮点计算单元的耗时:
图中,未开启计算单元的时候,除法耗费14ms ,乘法耗费18ms,加法耗费9ms,减法耗费10ms
开启后:除法耗费1.8ms ,乘法耗费2.6ms,加法耗费1.7ms,减法耗费1.8ms
通过计算,我们可以得知,开启硬件浮点计算单元后,乘法和除法能带来大约6倍的性能提升,加法和减法因为运算相对简单一点,所以性能提升在4倍。
|
|