Performance

Metallicow edited this page Jun 1, 2014 · 7 revisions

Here's a sample little tight counter loop, running for 10 seconds on 3 different setups:

MicroPython on Teensy 3.1: (96Mhz ARM) Damien gave me a hint, and told me to put the performance test inside a function, rather than global. It almost doubles the execution speed, which used to run 396,505 times. With another hint, its up over a million now:

def performanceTest():
    millis = pyb.millis
    endTime = millis() + 10000
    count = 0
    while millis() < endTime:
        count += 1
    print("Count: ", count)
performanceTest()

Count: 1,098,681

On pyboard it's 2,890,723

2nd pyboard test... WinXP SP3 4GB, PuTTY, and Samsung ECC1DU6BBE Micro-USB data cable with the shipped kickstarter board in pyb.usb_mode('CDC+MSC') # act as a serial and a storage device with performanceTest.py housed on internal memory(0:):

Micro Python v1.0.1 on 2014-05-12; PYBv1.0 with STM32F405RG
Type "help()" for more information.
>>> import performanceTest
>>> performanceTest.performanceTest()
Count:  2122667

C++ on Teensy 3.1: (96Mhz ARM)

#include <Arduino.h>  
void setup() {  
    Serial1.begin(115200);  
    uint32_t endTime = millis() + 10000;  
    uint32_t count = 0;  
    while (millis() < endTime)  
        count++;  
    Serial1.print("Count: ");  
    Serial1.println(count);  
}  
void loop() {  
}  

Count: 95,835,923


C++ on Arduino Pro Mini: (16 MHz Atmega328)

#include <Arduino.h>  
void setup() {  
    Serial.begin(115200);  
    uint32_t endTime = millis() + 10000;  
    uint32_t count = 0;  
    while (millis() < endTime)  
        count++;  
    Serial.print("Count: ");  
    Serial.println(count);  
}  
void loop() {  
}  

Count: 4,970,227


Some more looping examples and numbers: https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers/posts/664832

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.