DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(gperf) Description

Info Catalog (gperf) Search Structures (gperf) Top (gperf) Options
 
 High-Level Description of GNU `gperf'
 *************************************
 

Menu

 
* Input Format                Input Format to `gperf'
* Output Format               Output Format for Generated C Code with `gperf'
* Binary Strings              Use of NUL characters
 
    The perfect hash function generator `gperf' reads a set of
 "keywords" from a "keyfile" (or from the standard input by default).
 It attempts to derive a perfect hashing function that recognizes a
 member of the "static keyword set" with at most a single probe into the
 lookup table.  If `gperf' succeeds in generating such a function it
 produces a pair of C source code routines that perform hashing and
 table lookup recognition.  All generated C code is directed to the
 standard output.  Command-line options described below allow you to
 modify the input and output format to `gperf'.
 
    By default, `gperf' attempts to produce time-efficient code, with
 less emphasis on efficient space utilization.  However, several options
 exist that permit trading-off execution time for storage space and vice
 versa.  In particular, expanding the generated table size produces a
 sparse search structure, generally yielding faster searches.
 Conversely, you can direct `gperf' to utilize a C `switch' statement
 scheme that minimizes data space storage size.  Furthermore, using a C
 `switch' may actually speed up the keyword retrieval time somewhat.
 Actual results depend on your C compiler, of course.
 
    In general, `gperf' assigns values to the characters it is using for
 hashing until some set of values gives each keyword a unique value.  A
 helpful heuristic is that the larger the hash value range, the easier
 it is for `gperf' to find and generate a perfect hash function.
 Experimentation is the key to getting the most from `gperf'.
 
Info Catalog (gperf) Search Structures (gperf) Top (gperf) Options
automatically generated byinfo2html