【F769IDISCOVERY评测】MicroPython测试二
为了测试MicroPython在STM32F769DISC(STM32官网)上的运行性能,同时也是为了和STM32F746DISC进行对比,做了圆周率计算测试。这也可以作为另外一种跑分测试。在STM32F769DISC和STM32F746DISC上,分别计算1000、2000、5000和10000位圆周率,然后比较运行时间
圆周率测试代码
"""
文件:pi.py
说明:用MicroPython计算任意精度圆周率计算
作者:未知
版本:
时间:
修改:邵子扬
2016.5
v1.1
http://bbs.micro-python.com/forum.php
"""
import time
def pi(places=10):
# 3 + 3*(1/24) + 3*(1/24)*(9/80) + 3*(1/24)*(9/80)*(25/168)
# The numerators 1, 9, 25, ... are given by (2x + 1) ^ 2
# The denominators 24, 80, 168 are given by (16x^2 -24x + 8)
extra = 8
one = 10 ** (places+extra)
t, c, n, na, d, da = 3*one, 3*one, 1, 0, 0, 24
while t > 1:
n, na, d, da = n+na, na+8, d+da, da+32
t = t * n // d
c += t
return c // (10 ** extra)
def pi_t(n=10):
t1=time.ticks_us()
t=pi(n)
t2=time.ticks_us()
print('elapsed: ', time.ticks_diff(t2,t1)/1000000, 's')
return t
运行结果
[*]STM32F769DISC
>>> t=pi_t(1000)
elapsed:0.161505 s
>>> t=pi_t(2000)
elapsed:0.586691 s
>>> t=pi_t(5000)
elapsed:4.422982 s
>>> t=pi_t(10000)
elapsed:17.58597 s
[*]STM32F746DISC
>>> t=pi.pi_t(1000)
elapsed:0.174935 s
>>> t=pi.pi_t(2000)
elapsed:0.639885 s
>>> t=pi.pi_t(5000)
elapsed:4.934112 s
>>> t=pi.pi_t(10000)
elapsed:17.42959 s
可以看出,STM32F769DISC在计算1000、2000、5000位时,都比STM32F746DISC快一些,而在计算10000位时,时间差不多。
两块都是强大的板子 不错的方法 谢楼主分享 拜读了:P:P 感谢楼主分享 谢谢分享
页:
[1]