用MicroPython在STM32F7DISC上做阶乘计算
- UID
- 1066743
|
用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的阶乘才因为内存不足出错。看起来还是可以接受的。 |
|
|
|
|
|