如何使python脚本运行得更快?

如何使python脚本运行得更快?,python,linux,performance,pythonanywhere,Python,Linux,Performance,Pythonanywhere,当我在上运行脚本时,我注意到一个很大的不同。这些时间比在我的电脑上运行相同的脚本要短7-8倍,我想知道为什么。我在Intel®Core上运行Ubuntu12.04 LTS™ i7-3630QM处理器(6M高速缓存,高达3.40GHz)、8GB ram和SSD硬盘驱动器,速度超过500MB/s。 有人能给我解释一下我要做什么才能达到同样的成绩吗?有什么想法吗?感谢您在程序中使用线程。我有一个python程序,可以从finance.yahoo.com下载500只股票中每只股票约2KB的数据到我的家用

当我在上运行脚本时,我注意到一个很大的不同。这些时间比在我的电脑上运行相同的脚本要短7-8倍,我想知道为什么。我在Intel®Core上运行Ubuntu12.04 LTS™ i7-3630QM处理器(6M高速缓存,高达3.40GHz)、8GB ram和SSD硬盘驱动器,速度超过500MB/s。
有人能给我解释一下我要做什么才能达到同样的成绩吗?有什么想法吗?感谢您在程序中使用线程。我有一个python程序,可以从finance.yahoo.com下载500只股票中每只股票约2KB的数据到我的家用笔记本电脑,并将每只数据写入一个单独的文件。我有一个典型的家庭互联网连接(802.11G)。对于单个线程,需要2-3分钟,但是对于40个线程,需要不到4秒。我在2005年获得的Intel Core 2 CPU T5600、1.83 GHz和2 GB RAM上安装了Windows XP。

在程序中使用线程。我有一个python程序,可以从finance.yahoo.com下载500只股票中每只股票约2KB的数据到我的家用笔记本电脑,并将每只数据写入一个单独的文件。我有一个典型的家庭互联网连接(802.11G)。对于单个线程,需要2-3分钟,但是对于40个线程,需要不到4秒。我在2005年得到的英特尔Core 2 CPU T5600、1.83 GHz和2 GB RAM上安装了Windows XP。

在10种情况中,有9种情况下,当我解释速度慢的原因时,我错了。如果你看看我的名声,那么这意味着:我很多年前就停止了尝试,因为它根本不起作用


将日志记录添加到脚本中,告诉您哪一步需要多少时间。在两侧运行脚本并比较结果。这是找出事物为什么慢或快的最好方法。

在10种情况中,有9种情况下,我在解释事物为什么慢时是错的。如果你看看我的名声,那么这意味着:我很多年前就停止了尝试,因为它根本不起作用



将日志记录添加到脚本中,告诉您哪一步需要多少时间。在两侧运行脚本并比较结果。这是找出事物为什么慢或快的最好方法。

你是如何计时的?你在做什么?我在一个网站上做很多事情。他们中的大多数人都在向服务器发送POST数据。网络可能是家用PC上的瓶颈。不是所有的代码都在那里,除非我不知道如何使用它(我只能看到前22行),但你知道,对sleep()的两个调用会使事情变慢。我想知道“请点击”是否意味着需要一些人的行动。你是如何安排时间的?你在做什么?我在一个网站上做很多事情。他们中的大多数人都在向服务器发送POST数据。网络可能是家用PC上的瓶颈。不是所有的代码都在那里,除非我不知道如何使用它(我只能看到前22行),但你知道,对sleep()的两个调用会使事情变慢。我想知道“请点击”是否意味着需要一些人工操作。正如我之前回答的,我使用了它们>,但仍然比较慢:(在开始使用线程之前,你应该尝试对代码的哪些部分运行缓慢进行基准测试。试着对几个请求计时(比如100次)无论是在本地还是在PythonyWhere上,您都可以轻松地计算均值和方差,并查看发生了什么。如果网络真的是瓶颈,那么线程可能会有所帮助,但如果瓶颈是其他东西,那么线程可能不会对您有任何好处。正如我上面所说,我只能看到22行代码,您可以使用sleep().据我所知,如果正确编码,线程不会使其运行速度降低7-8倍。爬行是否会将每个页面发送到您的计算机?如果是这样,那么与发送POST数据相结合对我来说就像是I/O而不是CPU,因此线程应该会有所帮助。是的,如果您有数千个独立计算,我也支持多线程。正如我回答的b在此之前,我使用了Themes>,但仍然比较慢:(在开始使用线程之前,您应该尝试对代码中运行缓慢的部分进行基准测试。尝试对几个请求计时(比如100次)无论是在本地还是在PythonyWhere上,您都可以轻松地计算均值和方差,并查看发生了什么。如果网络真的是瓶颈,那么线程可能会有所帮助,但如果瓶颈是其他东西,那么线程可能不会对您有任何好处。正如我上面所说,我只能看到22行代码,您可以使用sleep().据我所知,如果编码正确,线程不会使其运行速度降低7-8倍。爬行是否会将每个页面发送到您的计算机?如果是这样,那么再加上发送POST数据对我来说就像是I/O而不是CPU,因此线程应该会有所帮助。是的,如果您有数千个独立计算,我也支持多线程。是的,结果是这太神奇了。在Pythonywhere和我的PC上,登录部分在5-7秒之间花费了0.00点。我还检查了从我的PC到web服务器的上游,没有波动-超过900K不断检查Pythonywhere是否真的收到了正确的数据。我做了,结果很神奇。在Pythonywhere上,登录部分花费了0.00点我还检查了从我的电脑到web服务器的上游数据,没有波动-超过900K不断检查Pythonywhere是否实际接收到正确的数据。