与windows相比,ubuntu中python程序的运行时间非常短。为什么?

时间:2014-12-15 07:09:09

标签: python windows ubuntu profiling running-total

我在Python中实现了Dijkstra's algorithm并在Ubuntu和windows 8下运行了脚本。两者都是x64架构。

我使用python -m cProfile name.py

分析了脚本

我很惊讶地看到,与Windows相比,该程序在Ubuntu中占用了一半的时间。

Ubuntu运行时间为1000 x 1000矩阵:0.4 sec

Windows运行时间为1000 x 1000矩阵= 1.2 sec

这是一台双启动机器。

这是怎么回事?

2 个答案:

答案 0 :(得分:0)

首先 - 显而易见的是,尽管python的版本可能相同,但它们已经使用不同的编译器进行编译,这自然意味着优化级别完全不同。你可以使用gcc为两个系统重新编译python,然后重新运行整个事件。但是,只有当您确定自己在做什么时,我才会建议您这样做。更具体地说是针对linux的,因为许多运行的进程在很大程度上依赖于python。看一下this讨论。

其次 - 窗口自然占用了比linux更多的资源,开箱即用的窗口启动了更多的进程,每个进程通常都是无限循环,占用资源。

基于操作系统比较性能是一个错误的概念。这基本上就像比较苹果和橙子。每个系统都有不同的方式来管理它的内存和运行过程。文件系统是另一个非常重要的部分 - 因为python在大多数情况下是解释语言,每个导入都执行磁盘操作。

答案 1 :(得分:0)

实际上,在我的机器中有一些原因导致Python性能下降。但是,我没有与我有统计数据,因此我没有证据。您可能还需要检查它们(还有一小撮盐; - ))。

  • 防病毒 - 如果有任何防病毒软件,请将Python位置以及程序的位置添加到白名单,然后尝试运行它们;这实际上让我获得了近33%的表现
  • 流程优先级 - 在运行时为流程赋予高优先级(在我的情况下,这是一个长时间运行的流程,所以我只是通过任务管理器完成)
  • 适当的司机 - 相信我。即使这听起来有些愚蠢,升级设备驱动程序确实可以提高性能。例如,当我从外部硬盘运行python进程时,与内部硬盘相比,它运行得更好一些。一旦我更新了我的硬盘驱动器,它实际上开始比我的外部硬盘运行得更好(需要注意的是它仍然比Linux版本慢)

然而,这些可能仍然无法帮助您达到Linux之类的性能。主要原因是两个python都可能由不同的c编译器编译。 libc也可能正在运行。