Board logo

标题: 用MicroPython在STM32F7DISC上做阶乘计算 [打印本页]

作者: look_w    时间: 2018-1-24 20:41     标题: 用MicroPython在STM32F7DISC上做阶乘计算

一直有网友担心,MicroPython运行是否足够快,性能够不够用。所以我做了一个小测试,用python计算阶乘,看看速度到底会有多快。
我们先编写一小段测试程序,这段代码先计算阶乘,然后计算总的耗时。测试程序如下:
import timedef fact(n):                r=1              t1=time.ticks_us()                        while n>1:                         r=r*n                        n=n-1                    t2=time.ticks_us()                             print('elapsed: ', time.ticks_diff(t1,t2), 'us')                                        return r
运行后,计算不同的数值,得到结果如下:
MicroPython v1.8 on 2016-05-15; F7DISC with STM32F746                           
Type "help()" for more information.
>>> import fact_t
>>> n=fact_t.fact(100)
elapsed:  979 us
>>> n=fact_t.fact(1000)
elapsed:  45384 us
>>> n=fact_t.fact(5000)
elapsed:  1174590 us
>>> n=fact_t.fact(10000)
elapsed:  4386010 us
>>> n=fact_t.fact(20000)
elapsed:  18040829 us
>>> n=fact_t.fact(25000)
elapsed:  33982479 us
>>> n=fact_t.fact(30000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "fact_t.py", line 7, in fact
MemoryError: memory allocation failed, allocating 49620 bytes
计算1oo的阶乘不到1000us,1000的阶乘需要45ms,10000的阶乘需要4.3S,直到计算30000的阶乘才因为内存不足出错。看起来还是可以接受的。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0