python / cython中绝对最快的查找

lol*_*ter 3 c python optimization performance cython

我想做一个查找映射32位整数=> 32位整数。

输入键不是必须连续的,也不必覆盖2 ^ 32 -1(我也不希望此内存占用太多空间!)。

该用例用于扑克评估者,因此查找必须尽可能快。完美的哈希值会很好,但是可能会超出范围。

我觉得答案是某种cython解决方案,但我不确定cython的基础以及它是否真的对Python dict()类型有用。当然,仅具有简单偏移跳转的平面数组将非常快,但随后我2^32 - 1在表的内存中分配了空间,这是我不想要的。

有什么技巧/策略吗?目标是以最小的内存占用量实现绝对的速度。

Ign*_*ams 5

您不够聪明,无法以比更快的速度写东西dict。别难过 地球上99.99999%的人不是。使用dict

  • 不会改变任何事情。 (3认同)
  • 在很多非常特殊的用例中,以比标准`dict`更快的速度写东西实际上并不难-甚至仅采用dict实现本身并对其进行优化并将其作为一个新对象公开。“ dict”对于一般用例来说是理想的选择,并且是合理的最佳选择,但这意味着要权衡几乎所有的特定用途(可能是“ dict”非常擅长的一般字符串哈希除外)。 (3认同)