为了进一步了解MicroPython的运行性能,又做了加法和乘法的计算测试,并和用C语言计算进行对比。分别进行1000,000次加法和乘法,看计算各需要多长时间。
使用MicroPython的测试程序如下:
- import time
- def add_test(n):
- t1=time.ticks_us()
- sum=0
- for i in range(n):
- sum = i + i
- t2=time.ticks_us()
- print(n, '次加法计算测试用时: ', time.ticks_diff(t1, t2), 'us')
- def mul_test(n):
- t1=time.ticks_us()
- sum=0
- for i in range(n):
- sum = i * i
- t2=time.ticks_us()
- print(n, '次乘法计算测试用时: ', time.ticks_diff(t1, t2), 'us')
复制代码
使用C语言的测试程序如下。为了测试计算性能,将程序的优化等级设置为0(不优化)。
- #include "mbed.h"
- #define NUM 1000000
- DigitalOut myled(LED1);
- Timer t;
- volatile uint32_t sum, i;
- int main() {
- printf("Mbed计算测试\r\n");
-
- t.reset();
-
- t.start();
-
- sum = 0;
- for(i = 0; i < NUM; i++)
- sum = i + i;
-
- t.stop();
-
- printf("%d 次加法计算用时 %f 秒\r\n", NUM, t.read());
-
- t.reset();
- t.start();
-
- sum = 0;
- for(i = 0; i < NUM; i++)
- sum = i * i;
-
- t.stop();
-
- printf("%d 次乘法计算用时 %f 秒\r\n", NUM, t.read());
-
- while(1) {
- myled = !myled;
- wait(1.0); // 1 sec
- }
- }
复制代码
运行MicroPython的结果是:
>>> test.add_test(1000000)
1000000 次加法计算测试用时: 2126868 us
>>> test.mul_test(1000000)
1000000 次乘法计算测试用时: 14458043 us
使用C语言计算的结果是:
Mbed计算测试
1000000 次加法计算用时 0.097270 秒
1000000 次乘法计算用时 0.101901 秒
加法上,MicroPython使用时间是C语言的21倍,而乘法是141倍。