我正在开发一个高性能应用程序,其中所有调用都必须合理。我有一个地图,在每个事务开始时使用一次来进行我想改进的查找。地图在启动时加载,此后不会更改。
下图中的键是 std::string,但如果需要,它可以更改为 char 数组。 C 或 C++ 作为解决方案就可以了。
typedef stdext::hash_map<std:string, int> symbols_t;
有谁知道任何其他解决方案可以消除查找或更快?
提前感谢您的帮助。
编辑的附加信息:
1. hash_map 目前有 350,000 个元素。
2. 每个键值的长度通常在 4 到 10 个字符之间。
3. 通过来自第三方 API 的回调接收信息。回调函数会被赋予一个符号,在进行地图查找时用作键值。软件的其余部分由映射查找返回的 int 驱动。
谢谢:感谢大家的意见。你给了我一些探索的途径。我一定会尝试这些。我很感激你的帮助。
该映射是完全恒定的还是在程序调用之间发生变化?
对于常量哈希(在编译时已知),有 gperf 程序,它可以生成快速且有保证的 O(1) 查找表。
此外,如果您告诉我们地图查找减慢代码速度的原因和具体方式,这可能有助于理解您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)