我有几个python脚本,我在字典中存储了500万到1000万个字符串键值对,我在这个字典中查询了大约500万到1000万次。我注意到python dict的性能不是很好。有没有其他最适合字符串键的实现。
编辑:
我有两个很大的人名列表,我想要匹配它们,所以我将其中一个作为参考列表,并尝试对第二个列表中的每个名称应用不同的启发式算法,以确定该列表是否存在于第一个列表中。因此,对于第二个列表中的每个名字,我必须查询第一个列表2-3次。希望,这是有道理的。
发布于 2011-03-30 15:20:53
哇。哈希图(字典)可能不是您要查找的结构。
不使用字符串,而是尝试一种可以提供良好和快速散列的表示。或者你真的在存储字符串?如果是这样,请省略前一句中的“可能”。
你能详细介绍一下你正在解决的问题吗?
发布于 2011-08-08 07:43:32
问题:这是可伸缩性问题吗?你有没有发现当你有两倍的数据时,代码的运行速度是原来的两倍?您是否可能正在耗尽物理内存并使用交换内存?
每个100个字符的1000万个字符串是一个千兆字节。如果您有2组这样的内存,那么就是2 32,这接近32位WinXP进程的极限。
如果您还不知道这个问题的答案,我建议对不同大小( 10或2的幂)的数据库运行一个测试,看看性能曲线是否不连续。
发布于 2011-03-30 15:24:04
正如圣地亚哥·莱西卡所说,字典不是你要找的结构。
也许你应该试试Redis:http://redis.io。它是一个高级的键值存储。
有一个用于python here的库。
https://stackoverflow.com/questions/5483121
复制相似问题