Windows上的Python性能

Windows上,Python通常比* nix机器慢一些? Python似乎在我的Mac OS X机器上大放异彩,而我的Window的Vista机器似乎运行速度较慢。 机器处理能力相似,Vista机器有1GB的内存。

我在Mercurial中特别注意到了这一点,但我想这可能只是Mercurial如何在Windows上打包。

我想跟进,我发现我相信的是'我的回答'。 看来,Windows(Vista,这是我注意到这一点)是不是在处理文件的速度。 这是托尼 – 李 – 李提到的。

我发现了Ubuntu vs Vista vs Win7的比较 。 他们的结果很有趣,就像他们说的,你需要用一粒盐来取得结果。 但我认为结果导致我的原因。 我觉得间接测试过的Python,如果在Windows上不是稍微快一点,那么Python是相当的。请参阅“Richards基准测试”一节。

这是他们的文件传输图:

图 - 小文件HD到HD

我认为这特别有助于解决这个问题,因为汞只是一系列的文件读取,复制和整体处理。 这可能是造成延误的原因。

http://www.tuxradar.com/content/benchmarked-ubuntu-vs-vista-vs-windows-7

在这里没有真正的数字,但它肯定觉得在Windows平台上启动时间较慢。 我经常在家中的Ubuntu和Windows 7之间切换,尽管我的工作机器至少是速度的4倍,但在Ubuntu上启动的速度要快上一个数量级。

就运行时性能而言,对于“安静”的应用程序来说感觉差不多。 如果在Windows上使用Tk进行GUI操作,肯定会比较慢。 Windows上的任何控制台应用程序都比较慢,但这很可能是由于Windows cmd渲染速度慢于python运行缓慢所致。

也许python有更多的文件打开(导入不同的模块)的依赖。

Windows不像Linux那样高效地处理文件。

或者,也许Linux可能有更多的实用程序依赖于python和python脚本/模块更可能被缓冲在系统缓存中。

我在Windows XP和7上运行Python以及在Macbook上运行OSX。 我没有看到在命令行解释器中的性能差异,wx widget应用程序运行相同,Django应用程序也几乎完全相同。

在工作中我注意到的一件事情是卡巴斯基病毒扫描程序往往会减慢python解释器的方式。 Python提示符需要3-5秒才能正确显示,而Django的测试服务器需要7-10秒才能完全加载。 正确禁用主动扫描会使启动时间回到0秒。

通过操作系统和网络库,我可以在Windows上确认性能较低,至少对于版本= <2.6。

我写了一个在Ubuntu上运行良好的CLI podcast-fetcher脚本,但是在XP或者7上都不会以大约80kB / s的速度下载任何东西(其中〜1.6MB / s是我最常用的)。

我可以通过调整下载流的缓冲区大小来部分纠正这种情况,但是在网络或IO上Windows确实存在一个主要的瓶颈,这在Linux上并不是问题。

基于此,系统和操作系统接口任务似乎更好地针对* nixes进行了优化,而不是针对Windows。

有趣的是,我直接比较了Windows 10 x64机器上的流行Python应用程序(低机能)和运行在同一台机器上的Ubuntu 14.04 VM。

我没有测试加载速度等,但只是看着两者之间的处理器使用情况。 为了使测试公平,都是新鲜的安装,我复制了我的媒体库的一部分,并在两种情况下应用相同的配置。 每个测试都是独立运行的。

  • 在Windows上,Python使用了我处理器能力的20%,它触发了系统压缩内存以40%的速度运行(这是一个6GB或RAM的旧机器)。
  • 使用Ubuntu上的VM(链接到我的Windows文件系统),处理器使用率约为5%,压缩内存降至20%左右。

这是一个巨大的差异。 我运行这个测试的触发器是使用python的应用程序运行我的CPU高达100%,无法运行。 现在我已经在虚拟机上运行了2周,处理器使用率平均下降到65-70%。 所以在长期和短期的测试中,考虑到运行虚拟机和第二个操作系统的开销,这个Python应用在Linux上的速度要快得多。 我也可以确认Python应用程序响应更好,就像我的机器上的其他所有内容一样。

现在,这可能是特定于应用程序的,但至少有趣。

电脑是一个旧的AMD II X2 X265处理器,6GB内存,SSD高清(Python运行,但VM使用普通的5200转高清,用于其他东西,包括2闭路电视摄像机的录音吨)。