关于上万行数据时CMap::InitHashTable操作效率问题
今天一个老项目中用到了CMap类,当Value超过数万行时,在Lookup、RemoveKey、SetAt三个函数频繁掉用时,就出现了明显迟钝,耗时非常久,差不多3-5秒左右
刚开始一度以为是自己处理算法和流程有待优化,后来查了官方文档及例程后:
在构造函数里加一行代码即可解决:
CMap::InitHashTable(nSize);
官方的建议是nSize必须为一个质数,而且是最大个数的1.2倍,nSize不能小于当前已使用的个数