docker加速python,为什么?

前端之家收集整理的这篇文章主要介绍了docker加速python,为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以我第一次在我的Mac上玩Docker.我在标准教程中使用了boot2docker,我在ubuntu映像中开始提示.

docker pull ubuntu
docker run -i -t ubuntu /bin/bash

当我在码头工作时,我开始了我的第一个实验,看看性能是否会下降.从命令行我将使用python timeit模块快速检查一些基本的性能测量.

Mac Python结果

$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,best of 3: 20.2 usec per loop

看起来奇怪的是,在我的mac上运行的docker ubuntu实际上比mac上的python运行python代码更快.为什么会出现这种情况有什么原因吗?

编辑

我可以确认两个python版本都在64位运行.

Mac Python

python3 -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
最佳答案
这更多地是关于操作系统的差异而不是码头工人的性能.测量应用程序的性能可能很棘手.

最重要的是,OS X有大量的流程可以与您的测试竞争,而OS X可能不会给您的测试带来高优先级.

在大多数情况下,容器应该与原生环境(有时更好)一样好.但是,您的测试应该使容器能够正常工作.当您的应用程序进行系统调用和访问I / O时,Docker将需要增加开销,因此这些应该都包含在您的测试中.

IBM去年撰写了一篇关于Linux Container vs. Native env问题的论文.

http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf

猜你在找的Docker相关文章