Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

use and examples of C++ "pwwhashmap", "memmap" and "diskmap" associative containers

25 views
Skip to first unread message

1971 powerChina

unread,
May 11, 2015, 5:01:36 AM5/11/15
to
Title: use and examples of C++ "pwwhashmap", "memmap" and "diskmap" associative containers.
Author: pengwenwei
Email: pww71 foxmail.com
Language: c++
Platform: Windows, linux
Technology: Perfect hash algorithm
Level: Advanced
Description: A high performance map algorithm
Section MFC c++ map stl
SubSection c++ algorithm
License: (GPLv3)


Map is widely used in c++ programs. Its performance is critical to programs' performance. Especially in big data and the scenarios which can't realize data distribution and parallel processing.

I have been working on big data analysis for many years in telecommunition and information security industry. The data analysis is so complicated that they can't work without map. Especially in information security industry, the data is much more complicated than others. For example, ip table, mac table, telephone numbers table, dns table etc.


Currently, the STL map and Google's hash map are the most popular maps. But they have some disadvantages. The STL map is based on binary chop, which causes a bad performance. Google Hash map has the best performance at present, but it has probability of collision. For big data analysis, the collision probability is unacceptable.

Now I would like to publish pwwMap. It includes three different maps for different scenarios:
1. Memory Map(memMap): It has a good access speed. But its size is limited by memory size.
2. Harddisk Map(diskMap): It utilizes hard disk to store data. So it could accept much more data than memory map.
3. Hashmap(hashMap): It has the best performance and a great lookup speed, but it doesn't have 'insert' and 'delete' functionality.

MemMap and diskMap could be converted to hashMap by function memMap2HashMap and diskMap2HashMap. According to the test result, my algorithms' collision probability is zero. About performance, memMap has a comparable performance with google, and hashMap's performance is 100 times better than Google's hashmap.

In summary, pwwhash are perfect hash algorithms with zero collision probability. You can refer to following artical to find the key index and compress algorithm theory:
http://blog.csdn.net/chixinmuzi/article/details/1727195

Source code and documents:
https://sourceforge.net/projects/pwwhashmap/files/?source=navbar

n.mus...@gmail.com

unread,
May 11, 2015, 8:45:38 AM5/11/15
to
Your Sourceforge repository doesn't contain the source code in browse-able form. Instead, it contains a zip file.

You should post your source code to Sourceforge or Github in the traditional way: unzipped, and readable by any visitor to the repo.

Richard

unread,
May 11, 2015, 1:51:58 PM5/11/15
to
[Please do not mail me a copy of your followup]

n.mus...@gmail.com spake the secret code
<39960af8-d92e-43af...@googlegroups.com> thusly:

>You should post your source code to Sourceforge or Github in the
>traditional way: unzipped, and readable by any visitor to the repo.

...and avoid posting essentially the same content in multiple posts.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
The Terminals Wiki <http://terminals.classiccmp.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
0 new messages