topikachu/python-ev3

Python3 vs python2 performance

fuzzycow opened this issue · 1 comments

Using the following snippet - it looks like simple "with open / read" combo on ev3 python3 is about twice as slow as python2
Using "rb" flag to open lowers the gap significantly, but doesn't eliminate it completely.

Since ev3dev / python-ev3 requires quite a bit of file open/read operations - perhaps a note should be made on project page about this?

mini-benchmark results:
python2 - ~617
python3 - ~280
python3 with open(filename,"rb") - ~480

filename = "/sys/class/power_supply/legoev3-battery/voltage_now"
status_every = 1000
counter = 1
t = time.clock()
while True:
    for _ in range(1,2):
        with open(filename,"rb") as f:
            data = f.read()
    counter += 1
    if ( counter % status_every ) == 0:
        tps = status_every / (time.clock() - t )
        print("tps : %f" % tps )
        t = time.clock()

P.S.: Many thanks for your work on python-ev3 ! :)

I will document your finding. Thanks.