topikachu / python-ev3

a project to run lego ev3 in python
Apache License 2.0
189 stars 73 forks source link

Python3 vs python2 performance #22

Closed fuzzycow closed 10 years ago

fuzzycow commented 10 years ago

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 ! :)

topikachu commented 10 years ago

I will document your finding. Thanks.