【发布时间】:2011-06-08 00:58:54
【问题描述】:
我正在使用dict 将缓存路径存储在我已实现的文件系统中。 dict 中的键都是字符串。经过一些分析后,我证明字典中的查找是一个瓶颈。我的理解是dict 是高度优化的。不幸的是,cProfile 的精度不包括 dict 查找代码的内部工作原理。
在 Python 3 中查找字符串会如此缓慢是否有某些原因? 有什么办法可以解决或提高性能吗?
【问题讨论】:
-
python dict 应该是散列和恒定时间。没有改变数据表示,我真的想不出任何东西。你能以某种方式标记字符串以减少它们的长度或将它们变成纯数字吗?本地人也比全局人快大约 x2,这是在函数还是全局代码中?
-
@gecko,这是在 instancemethods 中完成的
-
在 Python 3 中使用字符串键进行字典查找比在 Python 2 中慢一点,但不足以将非瓶颈变为瓶颈。所以这里的 Python 3 不是问题。您需要显示一些代码。
-
他确实说这是一个文件系统,如果他的意思是“操作系统的一部分”,我认为 Python 不会是首选语言 :-) 它可能太慢了。但是,是的,更多信息会很好。
标签: python string unicode dictionary python-3.x