Work to do a good job, must first sharpen his tools.
Hi
My English is not good and if there is a syntax error, Keep the jokes clean
please!
Welcome to my space:
http://sourceforge.net/p/pwwhashmap/discussion/general/
Title: The core of the core of the big data solutions -- Map
Author: pengwenwei
Email: wenwei19710430
Language: c++
Platform: Windows, linux
Technology: Perfect hash algorithm
Level: Advanced
Description: Map algorithm with high performance
Section MFC c++ map stl
SubSection c++ algorithm
License: (GPLv3)
Download demo project - 1070 Kb
Download source - 1070 Kb
Introduction:
For the c++ program, map is used everywhere.And bottleneck of program
performance is often the performance of map.Especially in the case of large
data,and the business association closely and unable to realize the data
distribution and parallel processing condition.So the performance of map
becomes the key technology.
In the work experience with telecommunications industry and the information
security industry, I was dealing with the big bottom data,especially the
most complex information security industry data,all can’t do without map.
For example, IP table, MAC table, telephone number list, domain name
resolution table, ID number table query, the Trojan horse virus
characteristic code of cloud killing etc..
The map of STL library using binary chop, its has the worst
performance.Google Hash map has the optimal performance and memory at
present, but it has repeated collision probability.Now the big data rarely
use a collision probability map,especially relating to fees, can’t be wrong.
Now I put my algorithms out here,there are three kinds of map,after the
build is Hash map.We can test the comparison,my algorithm has the zero
probability of collision,but its performance is also better than the hash
algorithm, even its ordinary performance has no much difference with Google.
My algorithm is perfect hash algorithm,its key index and the principle of
compression algorithm is out of the ordinary,the most important is a
completely different structure,so the key index compression is
fundamentally different.The most direct benefit for program is that for the
original map need ten servers for solutions but now I only need one server.
Declare: the code can not be used for commercial purposes, if for
commercial applications,you can contact me with QQ 75293192.
Download:
https://sourceforge.net/projects/pwwhashmap/files
Background to this article that may be useful such as an introduction to
the basic ideas presented:
http://blog.csdn.net/chixinmuzi/article/details/1727195
Development Manual:
Three different map algorithm, used in different application scenarios.
1,memMap: Based on memory No hard disk consumption.
2,diskMap: Based on the hard disk No memory consumption.
3,hashMap: No delete function, but the best performance.
memMap and diskMap can turn to hashMap by memMap2HashMap and
diskMap2HashMap.
In addition,Provide Google HashMap for comparative test.
Algorithm of Google,the performance is not good, but also has the collision
probability .
在 2009年5月15日星期五 UTC+8下午4:48:07,[email protected]写道:
>
> Author: [email protected] <javascript:>
> Date: Fri May 15 01:33:38 2009
> New Revision: 1961
>
> Modified:
> branches/bleeding_edge/test/cctest/test-hashmap.cc
>
> Log:
> Fix lint errors in test-hashmap.cc
>
> Modified: branches/bleeding_edge/test/cctest/test-hashmap.cc
>
> ==============================================================================
> --- branches/bleeding_edge/test/cctest/test-hashmap.cc (original)
> +++ branches/bleeding_edge/test/cctest/test-hashmap.cc Fri May 15
> 01:33:38
> 2009
> @@ -43,7 +43,7 @@
>
> class IntSet {
> public:
> - IntSet(IntKeyHash hash) : hash_(hash), map_(DefaultMatchFun) {}
> + explicit IntSet(IntKeyHash hash) : hash_(hash), map_(DefaultMatchFun)
> {}
>
> void Insert(int x) {
> CHECK_NE(0, x); // 0 corresponds to (void*)NULL - illegal key value
> @@ -59,7 +59,8 @@
> }
>
> bool Present(int x) {
> - HashMap::Entry* p = map_.Lookup(reinterpret_cast<void*>(x), hash_(x),
>
> false);
> + HashMap::Entry* p =
> + map_.Lookup(reinterpret_cast<void*>(x), hash_(x), false);
> if (p != NULL) {
> CHECK_EQ(reinterpret_cast<void*>(x), p->key);
> }
> @@ -164,7 +165,6 @@
> }
> y = y * factor + offset;
> }
> -
> }
> CHECK_EQ(0, set.occupancy());
> }
>
>
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.