Po raz pierwszy gram w docku na moim Macu. Użyłem boot2docker
za pośrednictwem standardowego samouczka i uruchamiam monit w obrazie ubuntu.docker przyspiesza python, dlaczego?
docker pull ubuntu
docker run -i -t ubuntu /bin/bash
Kiedy byłem w doku, zacząłem mój pierwszy eksperyment, aby sprawdzić, czy wydajność spadnie. Z wiersza poleceń użyłbym modułu python timeit
, aby szybko sprawdzić niektóre podstawowe miary wydajności.
$ 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 Wyniki
> 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
Wydaje się dziwne, że ubuntu doker, że jest uruchomiony na moim Macu jest uruchomiony kod Pythona szybciej niż pytona na Mac. Czy jest jakiś powód, dla którego to może być?
EdycjaMogę potwierdzić, że obie wersje python działają w 64-bitowym.
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
Czy oba są takie same w wersji Python 3.x? –
ubuntu uruchamia '' 'Python 3.4.0''', podczas gdy mac uruchamia' '' Python 3.4.1''', jeśli cokolwiek może pomóc wyjaśnić, dlaczego Mac powinien być szybszy, nie? – cantdutchthis
Czy program Python dla systemu Mac działa jako 32-bitowy plik wykonywalny, a wersja dokowalna to plik wykonywalny w wersji 64-bitowej? Widziałem również opcje kompilatora powodują znaczącą różnicę w wydajności. – casevh