Итак, я впервые играю с докером на своем mac. Я использовал boot2docker
через стандартный учебник, и я запускаю приглашение в изображении ubuntu.Доккер ускоряет питон, почему?
docker pull ubuntu
docker run -i -t ubuntu /bin/bash
Когда я был в докере, я начал свой первый эксперимент, чтобы увидеть, будет ли производительность снижаться. Из командной строки я бы использовал модуль python timeit
, чтобы быстро проверить некоторые основные показатели производительности.
$ 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 Результаты
> 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
Это кажется странным, что Докер убунту, который работает поверх моего макинтош, на самом деле работает код питона быстрее питона на макинтош. Есть ли причина, почему это может быть?
РедактированиеЯ могу подтвердить, что обе версии python работают в 64 бит.
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
ли они оба то же Python 3.x версии? –
ubuntu запускает '' 'Python 3.4.0''', в то время как mac запускает' '' Python 3.4.1''', если что-то, что может помочь объяснить, почему Mac должен быть быстрее, нет? – cantdutchthis
Является ли Mac Python запущенным как 32-разрядный исполняемый файл и версия докеры 64-битным исполняемым файлом? Я также видел, что параметры компилятора существенно влияют на производительность. – casevh