Forum Archive

Python benchmarking

nope

I thought it might be interesting to benchmark everything in my home that ran python, and compare the different speeds. I used the pystone benchmark that can be found here

Here are my results:

Ipod touch 5 with A5 processor at 800MHz Pythonista 1.4:
50000 passes: 10.766 seconds, 4670.01 pystones/second
====================================================
Edit:
Ipod touch 5 with A5 processor at 800MHz Pythonista 1.5:
10413.3 pystones/second for 50000 passes
====================================================
Laptop with 2.3 GHz Core2Duo running windows 7 Python 2.7.5:
50000 passes: 0.858592 seconds, 58234.9 pystones/second
====================================================
Rasberrypi 700 MHz Ubuntu:
50000 passes: 17.384 seconds, 2876.2 pystones/second
====================================================
Desktop with stock intel 920 at 2.66 GHz win 7 Python 2.7.5:
50000 passes: 0.67801 seconds, 73745.2 pystones/second
====================================================

Zoot

iPad Air Pythonista 1.5 0.948943 seconds / 52690 pystones/sec.

iPad Air Computable 1.0.0 1.00787 seconds / 49609 pystones/sec.

Very good performance, and suggests both Pythonista and Computable use the same (probably the standard C Python) implementation. The numbers change slightly on each run. The above are approximate median values from 3-4 runs.

Computable is also based on an earlier Python version (2.7.1) rather than Pythonista 1.5's 2.7.5 which could have an effect.

Z.

roger

Wow, so performance on the Air is comparable to a 2.3 GHz Core2Duo -- impressive!

siddbudd

iPad mini 2:
50000 passes = 1.04141
48011.9 pystones/second

amazing results...

henryiii

iPhone 5s:
Pystone(1.1) time for 50000 passes = 1.01324
This machine benchmarks at 49346.6 pystones/second

My desktop, an older quad core Ubuntu machine, gets 93980 pystones a second. My phone is half as fast as my desktop... That's insane!

ihf

iPad 3 = 13508 pystones/sec
Macbook Pro = 103550 pystones/sec

ihf

and just to show how far we've come...iphone 3G = 2885 pystones/sec

jesse

Since no one has listed it:

iPhone 4s (using Pystone 1.1 and Pythonista 1.5) = 10071.2 (pystones/sec)

So the iPhone 5s is ~4.9 times faster than the iPhone 4s (but the iPhone 4s is ~2.15 times faster than an iPod 5)

SpotlightKid

I only have an iPad 2. Here are my results:

Pystone(1.1) time for 50000 passes = 3.87673
This machine benchmarks at 12897.5 pystones/second

As you can see, performance is similar to the iPad 3, which has a different processor, but actually only its graphics part is faster, pure CPU power is about the same.

nope

That's not right... The 4s has the same processor as the ipod 5. Keep in mind I'm running pythonista 1.4.
Seems like they made quite an improvement from 1.4 to 1.5.
Could people please list the pythonista versions/ python versions they are using?

SpotlightKid

If you want to compare all your Python installations, there's the problem that the version of pystone.py linked in the first post doesn't work for Python >= 3 and the version included with your Python 3 installation doesn't work with Python 2.

So I created variant which fixes this (see the docstring for changes), taking the version from the Python mercurial default branch as the basis:

https://gist.github.com/SpotlightKid/3bd430a75b84a08e54f9

Chris

PS. My results for the iPad2 above were with Pythonista 1.5 (Python 2.7.5).

fjom146

Adding an Iphone 5 with Pythonista 1.5:


Pystone(1.1.1) time for 50000 passes = 2.4415
This machine benchmarks at 20479.2 pystones/second

nope

Pythonista 1.5, I'm getting 10413.3 pystones/second on the ipod touch 5th generation. There's a 100% jump from pythonista 1.4 to 1.5, that's impressive!

JadedTuna

My iPad 3 gives me 13084.3 ps/sec with Pythonista 1.5

And Samsung comp with Fedora 20 gives me 113778 ps/sec with Python 2.7.5

Idk how find out my comps GHz so...

SpotlightKid

@ShadowSlayer: cat /proc/cpuinfo

JadedTuna

@SpotlightKid, thanks. Looks like it is 2.4 GHz

oefe186

iPad 4th generation, Pythonista 1.5: 23446.4 pystones/second

victordomingos

iPhone 4

  • iOS 7.1.2, Pythonista 1.5: 7,11 secs, 7032,32 ps/sec.
  • iOS 7.1.2, Editorial 1.2.1: 12,93 secs, 3868,43 ps/sec.

iPhone 6 Plus

  • iOS 11.1, Pythonista 3.1, Python 3.5: 1.05s, 47748,8 ps/sec.
  • iOS 11.1, Pythonista 3.1, Python 2.7: 0,85s, 59025,5 ps/sec.

iPhone 7

  • iOS 11.1, Pythonista 3.1, Python 3.5: 0,38s, 129871 ps/sec.
  • iOS 11.1, Pythonista 3.1, Python 2.7: 0,30s, 164172 ps/sec.
  • iOS 11.1, Editorial 1.3.3: 0,31s, 162671 ps/sec.
Phuket2

IPad Pro 12.9' latest generation, highest spec.
IOS 11.1
Pythonista beta 311015

Py2.7
Pystone(1.1.1) time for 50000 passes = 0.25216
This machine benchmarks at 198287 pystones/second

Py3.6.1
Pystone(1.1.1) time for 50000 passes = 0.330286
This machine benchmarks at 151384 pystones/second

upwart

iPad Pro 10.5” 256 GB
iOS 11.0.3
Pythonista 3.1

Python 3.5
Pystone(1.1.1) time for 50000 passes = 0.349502
This machine benchmarks at 143061 pystones/second

Python 2.7
Pystone(1.1.1) time for 50000 passes = 0.296025
This machine benchmarks at 168905 pystones/second

wolf71

iPad Pro 9.7 256G iOS 11.1

Python 2.7

Pystone(1.1.1) time for 50000 passes = 0.346581
This machine benchmarks at 144266 pystones/second

Python 3.5

Pystone(1.1.1) time for 50000 passes = 0.427856
This machine benchmarks at 116862 pystones/second

chibill

Iphone 7 11.0.3 pythonista beta 311015 **
python 2.7
Pystone(1.1.1) time for 50000 passes = 0.285025
This machine benchmarks at 175423 pystones/second
python 2.7 in low power mode**
Pystone(1.1.1) time for 50000 passes = 0.627438
This machine benchmarks at 79689.1 pystones/second

python 3.6
Pystone(1.1.1) time for 50000 passes = 0.372435
This machine benchmarks at 134252 pystones/second

python 3.6 in low power mode
Pystone(1.1.1) time for 50000 passes = 0.774095
This machine benchmarks at 64591.6 pystones/second

victordomingos

I hadn't noticed that huge performance impact by using Low Power Mode (probably for not having to run any processor intensive tasks in my Pythonista).

Thanks for sharing!