计算机速度和Python运行时

时间:2013-12-28 17:00:51

标签: python html performance list processor

所以我有一个问题,我想知道你们是否可以帮助我。所以我现在正在编写一个程序,从html页面中提取一些字符串并将它们添加到列表中。我有50个页面,我从中提取数据。当我运行程序时,需要45到55秒来收集数据。不错,但我需要在15-20秒的某个地方。

所以这是我的问题:我的计算机有一个800MHz的过程(我知道,它已经四年了)我准备换一台新电脑,有更快的处理器帮助吗?如果是这样,我应该寻找什么样的处理器速度才能达到我想要的速度。这个速度是否与处理器速度或连接速度更相关(我的互联网连接对于这个应用来说肯定足够快)?它能够加速吗?

谢谢!

增加:

以下是使用的代码。

此函数创建存储数据的列表列表

def makesobjlist(objs, length):
    sets = [objs]
    for obj in objs:
        objlist = [obj]
        for i in range(1,length+1):
            objlist.append(0)
        sets.append(objlist)
    return sets

然后,以下函数更新列表列表

def update(objslist):
    for i in range(1, len(objslist)):
        objlist = objslist[i]
        objlist.append(getdata(objlist[0]))
        del(objlist[1])

2 个答案:

答案 0 :(得分:1)

Python支持线程,多个进程和队列。

通过简单地让多个工作人员执行工作,您可以获得一些速度,而不是一个必须等​​待的工人。基本上,您将“工作”划分为处理手头任务的多个程序(工作人员)。这比等待一个漫长的过程完成要快得多。

这里有类似的帖子:

Threading in python using queue

Multiprocessing vs Threading Python

答案 1 :(得分:0)

del(objlist[1])

如果这里的objlist可能很长(超过几十个),那么这条线的复杂性很差:它会移动列表的所有末尾。您应该重构代码而不是这样做。例如,您可以安排要删除的项目是列表中的 last 项目,而不是索引1处的项目; del objlist[-1]始终是一个固定时间操作。