Added gperf notes.

This commit is contained in:
davi 2005-01-27 00:04:11 +00:00
parent 4b1d7a7713
commit 70796d9383
7 changed files with 48 additions and 17 deletions

View File

@ -21,6 +21,3 @@ Enjoy!
Davi de Castro Reis Davi de Castro Reis
Fabiano Cupertino Botelho Fabiano Cupertino Botelho
%!include(html): ''LOGO.html''
Last Updated: %%date(%c)

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 303 B

View File

@ -19,6 +19,3 @@ Enjoy!
Davi de Castro Reis Davi de Castro Reis
Fabiano Cupertino Botelho Fabiano Cupertino Botelho
%!include(html): ''LOGO.html''
Last Updated: %%date(%c)

View File

@ -22,6 +22,3 @@ Enjoy!
Davi de Castro Reis Davi de Castro Reis
Fabiano Cupertino Botelho Fabiano Cupertino Botelho
%!include(html): ''LOGO.html''
Last Updated: %%date(%c)

40
GPERF.t2t Normal file
View File

@ -0,0 +1,40 @@
GPERF versus CMPH
You might ask why cmph if [gperf http://www.gnu.org/software/gperf/gperf.html]
already works perfectly. Actually, gperf and cmph have different goals.
Basically, these are the requirements for each of them:
- GPERF
- Create very fast hash functions for **small** sets
- Create **perfect** hash functions
- CMPH
- Create very fast hash function for **very large** sets
- Create **minimal perfect** hash functions
As result, cmph can be used to create hash functions where gperf would run
forever without finding a perfect hash function, because of the running
time of the algorithm and the large memory usage.
On the other side, functions created by cmph are about 2x slower than those
created by gperf.
So, if you have large sets, or memory usage is a key restriction for you, stick
to cmph. If you have small sets, and do not care about memory usage, go with
gperf. The first problem is common in the information retrieval field (e.g.
assigning ids to millions of documents), while the former is usually found in
the compiler programming area (detect reserved keywords).
----------------------------------------
[Home index.html]
----------------------------------------
Davi de Castro Reis
Fabiano Cupertino Botelho

8
README
View File

@ -1,6 +1,6 @@
CMPH - C Minimal Perfect Hashing Library CMPH - C Minimal Perfect Hashing Library
---------------------------------------- -------------------------------------------------------------------
Description Description
@ -11,8 +11,8 @@ production-quality and fast API. The library is designed to work with big entrie
can not fit in the main memory. It has been used successfully for constructing minimal perfect can not fit in the main memory. It has been used successfully for constructing minimal perfect
hashing functions for sets with more than 100 million of keys. hashing functions for sets with more than 100 million of keys.
Although there is a lack of similar libraries Although there is a lack of similar libraries
in the free software world, we can point out some of the distinguishable in the free software world (gperf is a bit different (gperf.html)), we can point out some
features of cmph: of the distinguishable features of cmph:
- Fast. - Fast.
- Space-efficient with main memory usage carefully documented. - Space-efficient with main memory usage carefully documented.
@ -162,7 +162,7 @@ Davi de Castro Reis
Fabiano Cupertino Botelho Fabiano Cupertino Botelho
Last Updated: Tue Jan 25 18:43:38 2005 Last Updated: Wed Jan 26 22:37:36 2005

View File

@ -3,7 +3,7 @@ CMPH - C Minimal Perfect Hashing Library
%!includeconf: CONFIG.t2t %!includeconf: CONFIG.t2t
---------------------------------------- -------------------------------------------------------------------
**Description** **Description**
@ -14,8 +14,8 @@ production-quality and fast API. The library is designed to work with big entrie
can not fit in the main memory. It has been used successfully for constructing minimal perfect can not fit in the main memory. It has been used successfully for constructing minimal perfect
hashing functions for sets with more than 100 million of keys. hashing functions for sets with more than 100 million of keys.
Although there is a lack of similar libraries Although there is a lack of similar libraries
in the free software world, we can point out some of the distinguishable in the free software world ([gperf is a bit different gperf.html]), we can point out some
features of cmph: of the distinguishable features of cmph:
- Fast. - Fast.
- Space-efficient with main memory usage carefully documented. - Space-efficient with main memory usage carefully documented.
@ -28,7 +28,6 @@ features of cmph:
- Well encapsulated API aiming binary compatibility through releases. - Well encapsulated API aiming binary compatibility through releases.
- Free Software. - Free Software.
---------------------------------------- ----------------------------------------
**Supported Algorithms** **Supported Algorithms**

View File

@ -2,4 +2,5 @@ txt2tags -t html -i README.t2t -o index.html
txt2tags -t html -i BMZ.t2t -o bmz.html txt2tags -t html -i BMZ.t2t -o bmz.html
txt2tags -t html -i CHM.t2t -o chm.html txt2tags -t html -i CHM.t2t -o chm.html
txt2tags -t html -i COMPARISON.t2t -o comparison.html txt2tags -t html -i COMPARISON.t2t -o comparison.html
txt2tags -t html -i GPERF.t2t -o gperf.html
txt2tags -t txt -i README.t2t -o README txt2tags -t txt -i README.t2t -o README