资源简介
对于c++程序来说 map的使用无处不在。影响程序性能的瓶颈也往往是map的性能。尤其在大数据情况下,以及业务关联紧密而无法实现数据分发和并行处理的情况。map的性能就成了最关键的技术。
比如:ip表、mac表,电话号码表、身份证号码表的查询、等等。
stl库的map采用二分查找,性能最差。Google的哈希map性能和内存目前是最优的。
我在电信行业和信息安全行业里的工作经历发现,目前网络上的哈希算法都在查询速度上远远无法满足日趋增长的网络大数据要求。因此产生了自己写算法的想法。
现在我把自己的算法初稿发布出来,用我在一家信息安全的公司打工时的应用场景进行测试。就是病毒库特征码的
比如:ip表、mac表,电话号码表、身份证号码表的查询、等等。
stl库的map采用二分查找,性能最差。Google的哈希map性能和内存目前是最优的。
我在电信行业和信息安全行业里的工作经历发现,目前网络上的哈希算法都在查询速度上远远无法满足日趋增长的网络大数据要求。因此产生了自己写算法的想法。
现在我把自己的算法初稿发布出来,用我在一家信息安全的公司打工时的应用场景进行测试。就是病毒库特征码的
代码片段和文件信息
#include
#include “HiResTimer.h“
//***********************************************
CHiResTimer::CHiResTimer() : m_qwStart(0) m_qwStop(0)
{
m_bTimerInstalled = QueryPerformanceFrequency((LARGE_INTEGER*)&m_qwFreq) ? true : false;
}
//***********************************************
void CHiResTimer::Start(void)
{
QueryPerformanceCounter((LARGE_INTEGER*)&m_qwStart);
}
//***********************************************
void CHiResTimer::Stop(void)
{
QueryPerformanceCounter((LARGE_INTEGER*)&m_qwStop);
}
//***********************************************
float CHiResTimer::GetTime(void) const
{
float fTime = 0.0;
if(m_bTimerInstalled && m_qwFreq != 0)
fTime = (float)((m_qwStop - m_qwStart) / (float)m_qwFreq);
return fTime;
}
//************
- 上一篇:opengl调试
- 下一篇:c++ 三个数中取最大值
相关资源
- C++实战源码-小蛇长得快(入门级602)
- C++实战源码-文字水平滚动(入门级
- C++实战源码-替换指定的字符串(入门
- C++实战源码-小球称重(入门级046)
- C++实战源码-新同学的年龄(入门级
- C++实战源码-向数组中赋值(入门级
- C++实战源码-用#打印三角形(入门级
- C++实战源码-统计学生成绩分布(入门
- C++实战源码-向数组中插入元素(入门
- C++实战源码-用指向函数的指针比较大
- C++实战源码-用宏定义实现值互换(入
- C++实战源码-CD抓取(入门级574).zip
- C++实战源码-指定符号分割字符串(入
- C++实战源码-抓不住的兔子(入门级
- C++实战源码-用new动态创建结构体(入
- C++实战源码-将AVI动画分解成BMP位图(
- C++实战源码-修改可执行文件中的资源
- C++实战源码-指向结构体变量的指针(
- C++实战源码-将二维数组行列对换(入
- C++实战源码-应用random_shuffle算法将元
- C++实战源码-应用adjacent_find算法搜索相
- C++实战源码-数组中整数的判断(入门
- C++实战源码-获取数组中元素的个数(
- C++实战源码-将二维数组转换为一维数
- C++实战源码-迭代器的用法(入门级
- C++实战源码-二维数组行最大值中的最
- C++实战源码-输出数组元素(入门级
- C++实战源码-使用指针变量遍历二维数
- C++实战源码-数组中连续相等数的计数
- C++实战源码-计算字符串中有多少个单
评论
共有 条评论