Quindi sto giocando con la finestra mobile per la prima volta sul mio Mac. Ho usato boot2docker
attraverso il tutorial standard e sto iniziando un prompt in un'immagine di Ubuntu.accelera Python, perché?
docker pull ubuntu
docker run -i -t ubuntu /bin/bash
Quando nella finestra mobile ho avviato il mio primo esperimento, per vedere se le prestazioni sarebbero diminuite. Dalla riga di comando userei il modulo python timeit
per controllare rapidamente alcune misure di base delle prestazioni.
$ python3.4 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 3: 37.7 usec per loop
$ python3.4 -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 3: 34.2 usec per loop
$ python3.4 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 26.2 usec per loop
Docker Python Risultati
> python3 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 3: 30 usec per loop
> python3 -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 3: 26.9 usec per loop
> python3 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 20.2 usec per loop
Sembra strano che la finestra mobile di Ubuntu, che è in esecuzione in cima al mio mac, è in realtà l'esecuzione di codice python più veloce del pitone su Mac. C'è qualche ragione per cui questo potrebbe essere?
ModifichePosso confermare che entrambe le versioni di Python sono in esecuzione a 64 bit.
Mac Pythonpython3 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
7fffffffffffffff True
Ubuntu Python
python3.4 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
7fffffffffffffff True
Sono entrambi la stessa versione di Python 3.x? –
ubuntu esegue '' 'Python 3.4.0''' mentre mac esegue' '' Python 3.4.1''' se qualcosa può aiutare a spiegare perché il Mac dovrebbe essere più veloce, no? – cantdutchthis
Mac Python è in esecuzione come eseguibile a 32 bit e la versione mobile è un eseguibile a 64 bit? Ho anche visto le opzioni del compilatore fare una differenza significativa nelle prestazioni. – casevh