未来十年内,c加加程序必使用map新算法pwwHashMap

pww71 2014-05-03 08:51:21
大数据处理利器 专利算法
对于c++程序来说 map的使用无处不在。影响程序性能的瓶颈也往往是map的性能。尤其在大数据情况下,以及业务关联紧密而无法实现数据分发和并行处理的情况。map的性能就成了最关键的技术。
比如:ip表、mac表,电话号码表、身份证号码表的查询、病毒木马的特征码的云查杀等等。
stl库的map采用二分查找,性能最差。Google的哈希map性能和内存目前是最优的,但是有重复碰撞的机率。
我在电信行业和信息安全行业里的工作经历发现,目前网络上的哈希算法都在查询速度上远远无法满足日趋增长的网络大数据要求。因此产生了自己写算法的想法。
现在我把自己的算法发布出来。里面有两种map,build之后是哈希map。大家可以测试对比发现,我的算法属于零碰撞的几率,但是性能比哈希算法还优。就是普通map的性能也和google相差无几。
程序使用我的map 最直接的效益就是 原来需要十个服务器解决的方案 现在只需要一个服务器
声明:该代码不能用于商业用途,只能用于科学研究。
下载地址:

http://download.csdn.net/detail/pww71/7239685:-|^|-:http://www.urlshare.cn/mqz_url_check:-|^|-:srctype=touch&apptype=android&loginuin=75293192&plateform=qzone&url=http%3A%2F%2Fdownload.csdn.net%2Fdetail%2Fpww71%2F7239685%23tc_qz_original%3D75293192&src_uin=75293192&src_scene=2&cli_scene=getDetail
网上讨论:原来我的算法是完美哈希算法,但是算法原理是独树一帜与众不同的 我要保密。大家可以看看一下文章

http://blog.csdn.net/chixinmuzi/article/details/1727195:-|^|-:http://www.urlshare.cn/mqz_url_check:-|^|-:srctype=touch&apptype=android&loginuin=75293192&plateform=qzone&url=http%3A%2F%2Fblog.csdn.net%2Fchixinmuzi%2Farticle%2Fdetails%2F1727195%23tc_qz_original%3D75293192%23tc_qz_original%3D75293192%23tc_qz_original%3D75293192%23tc_qz_original%3D75293192%23tc_qz_original%3D75293192&src_uin=75293192&src_scene=2&cli_scene=getDetail
很多人认为现在有hadoop处理大数据是主流,其实它就是硬盘map,就是从硬盘快速查询表 通过键查值 取代复杂的数据库SQL语句。 对于大数据查询 可能不需要复杂的查询就用这种方式更快。而数据库查询也是硬盘查询 但是速度慢了
而我的map查询是内存根据键查询值
对于写程序的人来说 内存是效率和性能最高的。因此我的map用途是最广泛的。
可以提供给云查询服务器做大数据快速检索查询服务。
只有大数据太大的情况 超过内存的存放量,这才选择硬盘检索和数据库。
...全文
711 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
pww71 2014-07-18
  • 打赏
  • 举报
回复
1995年 谁先在互联网抢注域名谁就先发财。现在pwwHashMap问世,谁先签注使用权,谁将先掌握市场。
pww71 2014-07-18
  • 打赏
  • 举报
回复
新闻报道12306铁路购票系统漏洞,黄牛可以用一台电脑购买n多个票。要在大数据情况下识别一台电脑只能购买一张票,系统性能是瓶颈,要识别ip,mac和帐号信息于一起,属于海量数据的查询。建议使用我的map,可以提升性能20倍。
就想叫yoko 2014-07-17
  • 打赏
  • 举报
回复
引用 35 楼 pww71 的回复:
[quote=引用 33 楼 q191201771 的回复:] 另外有的场景分治也不错呀,减小锁粒度。
你应该没有研究过Map算法深层的东西,就只是使用而已吧。[/quote] 是的
pww71 2014-07-16
  • 打赏
  • 举报
回复
引用 27 楼 whoho 的回复:
另外,在国内我不完全清楚。在美国,算法不能申请专利!而你要知道,多数对计算机发展产生重大影响的算法都源自美国的科学家或者工程师
不可能吧 当初就是美国的视频编码算法专利让中国的dvd厂商每生产一台dvd都交专利费 另外图像领域很多算法都是有专利保护的
pww71 2014-07-16
  • 打赏
  • 举报
回复
引用 33 楼 q191201771 的回复:
另外有的场景分治也不错呀,减小锁粒度。
你应该没有研究过Map算法深层的东西,就只是使用而已吧。
pww71 2014-07-16
  • 打赏
  • 举报
回复
引用 32 楼 q191201771 的回复:
map,unordered_map,vector 基本上有这三个容器来做索引足够了。 通用场景,想查得更快,无外乎插入删除时做更多的工作或占用更大的空间。
你可以试试我的Map,对比测试内存 cpu 就知道什么是速度。目前boost的性能不如google 而google的map是哈希的,有碰撞几率。我的map性能比google哈希的算法性能更好,而且没有碰撞几率。
就想叫yoko 2014-07-16
  • 打赏
  • 举报
回复
另外有的场景分治也不错呀,减小锁粒度。
就想叫yoko 2014-07-16
  • 打赏
  • 举报
回复
map,unordered_map,vector 基本上有这三个容器来做索引足够了。 通用场景,想查得更快,无外乎插入删除时做更多的工作或占用更大的空间。
whoho 2014-07-16
  • 打赏
  • 举报
回复
引用 30 楼 pww71 的回复:
引用 29 楼 whoho 的回复:
[quote=引用 28 楼 pww71 的回复:] [quote=引用 27 楼 whoho 的回复:] 另外,在国内我不完全清楚。在美国,算法不能申请专利!而你要知道,多数对计算机发展产生重大影响的算法都源自美国的科学家或者工程师
不可能吧 当初就是美国的视频编码算法专利让中国的dvd厂商每生产一台dvd都交专利费 另外图像领域很多算法都是有专利保护的
在美国,纯算法是无法申请专利的,美国专利部门曾希望将“数值”算法(Hash算非数值算法)纳入专利保护范围,Donald Knuth还专门写信进行反对,说数值算法与非数值算法没有本质区别,加以专利保护不利于创新,后来不了了之 你说的dvd是涉及到芯片设计[/quote] 问题 人家是对视频编解码的算法专利投诉要钱 你上网查查 这个专利现在还是要钱的 不过现在升级h264了 流媒体都用的标准[/quote] DVD编解码芯片硬件或其设计吧?算法是不受美国专利法保护的,你可以自己编程实现,没人会告你
pww71 2014-07-16
  • 打赏
  • 举报
回复
引用 29 楼 whoho 的回复:
引用 28 楼 pww71 的回复:
[quote=引用 27 楼 whoho 的回复:] 另外,在国内我不完全清楚。在美国,算法不能申请专利!而你要知道,多数对计算机发展产生重大影响的算法都源自美国的科学家或者工程师
不可能吧 当初就是美国的视频编码算法专利让中国的dvd厂商每生产一台dvd都交专利费 另外图像领域很多算法都是有专利保护的
在美国,纯算法是无法申请专利的,美国专利部门曾希望将“数值”算法(Hash算非数值算法)纳入专利保护范围,Donald Knuth还专门写信进行反对,说数值算法与非数值算法没有本质区别,加以专利保护不利于创新,后来不了了之 你说的dvd是涉及到芯片设计[/quote] 问题 人家是对视频编解码的算法专利投诉要钱 你上网查查 这个专利现在还是要钱的 不过现在升级h264了 流媒体都用的标准
whoho 2014-07-16
  • 打赏
  • 举报
回复
引用 28 楼 pww71 的回复:
引用 27 楼 whoho 的回复:
另外,在国内我不完全清楚。在美国,算法不能申请专利!而你要知道,多数对计算机发展产生重大影响的算法都源自美国的科学家或者工程师
不可能吧 当初就是美国的视频编码算法专利让中国的dvd厂商每生产一台dvd都交专利费 另外图像领域很多算法都是有专利保护的
在美国,纯算法是无法申请专利的,美国专利部门曾希望将“数值”算法(Hash算非数值算法)纳入专利保护范围,Donald Knuth还专门写信进行反对,说数值算法与非数值算法没有本质区别,加以专利保护不利于创新,后来不了了之 你说的dvd是涉及到芯片设计
whoho 2014-07-15
  • 打赏
  • 举报
回复
另外,在国内我不完全清楚。在美国,算法不能申请专利!而你要知道,多数对计算机发展产生重大影响的算法都源自美国的科学家或者工程师
whoho 2014-07-15
  • 打赏
  • 举报
回复
首先,如果是事前已知、固定数目的键值集合,可以找到完美散列函数(请参考《算法导论》,有阐述专门的数学方法,据此就可以用程序实现) 其次,如果是事前不能预测,数目不定的键值集合,不存在完美散列函数 所以楼主,作为通用的哈希算法,没有碰撞,那只是你的想象,测试集合太小给你产生的错觉 哈希算法是个显学,在算法界已经有深入的研究,不要太孤陋寡闻了 你作研究必须知道目前学界已经获得的成果,否则会闹笑话的
ForestDB 2014-07-15
  • 打赏
  • 举报
回复
有些东西,不用看成果,看说话的方式,就知道个八九不离十了。
pww71 2014-07-15
  • 打赏
  • 举报
回复
引用 23 楼 yangyunzhao 的回复:
[quote=引用 21 楼 pww71 的回复:] [quote=引用 20 楼 yangyunzhao 的回复:] 为什么不是boost::unordered_map
boost的Map 我知道 性能效率不如我的Map 我测试过的。[/quote] 能给出测试程序和测试结果吗? 有点好奇,谢谢[/quote] 你可以下载 里面有测试程序
yangyunzhao 2014-07-15
  • 打赏
  • 举报
回复
引用 21 楼 pww71 的回复:
[quote=引用 20 楼 yangyunzhao 的回复:] 为什么不是boost::unordered_map
boost的Map 我知道 性能效率不如我的Map 我测试过的。[/quote] 能给出测试程序和测试结果吗? 有点好奇,谢谢
pww71 2014-07-15
  • 打赏
  • 举报
回复
引用 20 楼 yangyunzhao 的回复:
为什么不是boost::unordered_map
boost的Map 我知道 性能效率不如我的Map 我测试过的。
yangyunzhao 2014-07-10
  • 打赏
  • 举报
回复
为什么不是boost::unordered_map
pww71 2014-07-10
  • 打赏
  • 举报
回复
引用 16 楼 my3439955 的回复:
用sha1或md5做哈希不会碰撞,但是空间消耗很大。碰撞率和空间消耗是成反比的
一样有碰撞 就是几率小而已
pww71 2014-07-10
  • 打赏
  • 举报
回复
http://blog.csdn.net/pww71/article/details/34791357 http://user.qzone.qq.com/75293192/2
加载更多回复(17)

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧