Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么EC2机器上的内存复制速度慢?_Python_Memory_Amazon Ec2 - Fatal编程技术网

Python 为什么EC2机器上的内存复制速度慢?

Python 为什么EC2机器上的内存复制速度慢?,python,memory,amazon-ec2,Python,Memory,Amazon Ec2,在我的EC2机器上,内存拷贝似乎惊人地慢。我想找出原因 在大多数计算机上,我观察到大容量内存拷贝带宽为3000 MB/s。请参见以下Python代码段: In [1]: data = b'0' * int(1e8) # 100 MB In [2]: %time len(data[1:]) # memcopy CPU times: user 18.4 ms, sys: 8.62 ms, total: 27.1 ms Wall time: 27.1 ms Out[2]: 99999999

在我的EC2机器上,内存拷贝似乎惊人地慢。我想找出原因

在大多数计算机上,我观察到大容量内存拷贝带宽为3000 MB/s。请参见以下Python代码段:

In [1]: data = b'0' * int(1e8)  # 100 MB

In [2]: %time len(data[1:])     # memcopy
CPU times: user 18.4 ms, sys: 8.62 ms, total: 27.1 ms
Wall time: 27.1 ms
Out[2]: 99999999

In [3]: 100000000 / 0.027 / 1e6  # MB/s
Out[3]: 3703.703703703704
然而,在EC2上,这种情况发生了显著的变化

In [1]: data = b'0' * int(1e8)  # 100 MB

In [2]: %time len(data[1:])     # memcopy
CPU times: user 44 ms, sys: 148 ms, total: 192 ms
Wall time: 192 ms
Out[2]: 99999999

In [3]: 100000000 / 0.192 / 1e6  # MB/s
Out[3]: 520.8333333333333
我以前从未见过memcpy跑得那么慢。可能的原因是什么

安装程序 软件环境基本相同。我在每台机器上运行Ubuntu14.04和带有Python 2.7的Anaconda。硬件是不同的

  • 笔记本电脑(Thinkpad w540):Intel(R)Core(TM)i7-4700MQ CPU@2.40GHz
  • EC2机器(m4.xlarge):英特尔(R)至强(R)CPU E5-2670 v2@2.50GHz

您正在将物理服务器与虚拟机进行比较。尝试在你的笔记本电脑上加载VirtualBox,并在其中运行测试,以便更好地进行比较。你在使用iPython吗?在i5-2500上大约需要45毫秒,而在t2.micro AWS实例上,使用纯python3代码大约需要33毫秒。@MarkB我这样做了,我在我的虚拟机上没有观察到太多的减速。它的速度在0%到70%之间。