Python在tim上写磁盘时性能下降

2024-10-02 22:35:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一段代码,从一个非常大的数据文件中获取一个输入,对它执行一些简单的处理,然后将其存储在一个shelve字典格式中。我有4100万个条目要处理。然而,在我为shelvedict写了3500万个条目之后,性能突然下降,最终完全停止。你知道我能做些什么来避免这种情况吗?在

我的数据在twitter上,它将用户的用户名映射到他们的ID上。如下所示:

Jack 12
Mary 13
Bob 15

我需要很快地按名字访问每一个。比如:当我给my_dict[Jack]时,它返回12。在


Tags: 数据代码用户id字典数据文件格式情况
1条回答
网友
1楼 · 发布于 2024-10-02 22:35:36

考虑使用更低级的东西。不幸的是,货架性能可能很低。但这并不能解释你看到的减速。在

对于许多基于磁盘的索引,如果您可以将它们初始化为预期的大小,那么它可以帮助,因此它们不需要动态地重新组织自己。我已经看到这对不同库中的磁盘哈希表的性能有很大的影响。在

至于你的实际目标,看看:

http://docs.python.org/library/persistence.html

尤其是gdbm, dbhash, bsddb, dumbdbm和{}模块。在

sqlite3可能不是最快的,但最容易使用。毕竟,它有一个命令行SQL客户机。bsddb可能更快,特别是当您针对数据大小调整nelem和类似参数时。而且它也有很多语言绑定;可能比sqlite还要多。在

尝试创建初始大小为4100万的数据库,这样它就可以针对这个大小进行优化!在

相关问题 更多 >