在我的Windows 7计算机上加载Python比在VM上运行的Ubuntu 14.04(在同一硬件上的Windows内部)上加载时间长17倍.Anaconda3发行版用于Windows和Ubuntu默认python3.4.
从Bash提示符(Windows上的Git bash):
$ time python3 -c "pass"
Run Code Online (Sandbox Code Playgroud)
在Windows上返回0.614s,在Linux上返回0.036s
加载包时情况会变得更糟:
$ time python3 -c "import matplotlib"
Run Code Online (Sandbox Code Playgroud)
在Windows上返回6.01s,在Linux上返回0.189s
Spyder在Windows上加载了51秒,在Linux上加载了1.5秒.
我没有运气确定为什么会出现这种性能问题.有没有人有任何想法我接下来应该尝试什么?
编辑:
为什么python在Windows上这么慢?有人建议将其作为一个可能的重复,但我的性能差异要大得多,而且不能简单地通过不同的库依赖关系和编译器来解释.在我看来,这与文件系统差异有关.
我怀疑是防病毒的访问时扫描,但为了以防万一,禁用了防病毒软件.
>>> sys.path
['', 'c:\\Anaconda3\\python34.zip', 'c:\\Anaconda3\\DLLs', 'c:\\Anaconda3\\lib', 'c:\\Anaconda3', 'c:\\Anaconda3\\lib\\site-packages', 'c:\\Anaconda3\\lib\\site-packages\\Sphinx-1.2.3-py3.4.egg', 'c:\\Anaconda3\\lib\\site-packages\\cryptography-0.8-py3.4-win-amd64.egg', 'c:\\Anaconda3\\lib\\site-packages\\nose-1.3.4-py3.4.egg', 'c:\\Anaconda3\\lib\\site-packages\\win32', 'c:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'c:\\Anaconda3\\lib\\site-packages\\Pythonwin', 'c:\\Anaconda3\\lib\\site-packages\\setuptools-14.3-py3.4.egg']
Run Code Online (Sandbox Code Playgroud)
更新:
在同一台PC上全新安装Windows 8.1 Pro解决了这个问题.重新安装所有应用程序后,Anaconda3的Python性能是我见过的最好的.不幸的是,这个问题的根本原因仍然未知.
更正:
在我的IT部门安装了Sophos SafeGuard加密软件和MS Endpoint Protection之后,问题就出现了.和以前一样慢启动.禁用额外的软件并没有解决问题所以我们正在尝试在其他机器上进行测试来追踪问题.
在Windows和*nix机器上,Python通常较慢吗?Python似乎在我的Mac OS X机器上闪现,而它似乎在我的Window的Vista机器上运行得更慢.这些机器的处理能力相似,而vista机器的内存增加了1GB.
我在Mercurial中特别注意到这一点,但我认为这可能只是Mercurial在Windows上打包的方式.
python ×2
anaconda ×1
benchmarking ×1
macos ×1
matplotlib ×1
mercurial ×1
performance ×1
windows ×1