【发布时间】:2011-03-11 06:14:24
【问题描述】:
我正在使用 python 来解析传入的逗号分隔字符串。之后我想对数据进行一些计算。 字符串的长度为:800 个字符,120 个逗号分隔的字段。 有 120 万个字符串需要处理。
for v in item.values():
l.extend(get_fields(v.split(',')))
#process l
get_fields 使用 operator.itemgetter() 从 120 个字段中提取大约 20 个字段。
整个操作大约需要 4-5 分钟,不包括导入数据的时间。 在程序的后面部分,我将这些行插入到 sqlite 内存表中以供进一步使用。 但是对于我的项目来说,仅仅解析和获取列表需要 4-5 分钟的时间。
我在大约 6-8 个线程中运行此处理。
改用 C/C++ 会有所帮助吗?
【问题讨论】:
-
您正在调用一个需要遍历 800 个字符的函数,并且您正在执行超过一百万次。即使是计算机,也需要处理很多事情。
-
如果你打算重新发明轮子,你应该看看这篇文章:stackoverflow.com/questions/3055477/… 你也应该看看发电机。
-
什么意思,“不包括引入数据的时间”?
-
基本上我在没有字符串处理的情况下运行代码,然后在处理后再次运行以获得字符串处理部分的时间。
标签: python performance string parsing