View Revisions: Issue #3185

Summary 0003185: Logbook's metadata structures could be faster
Revision 2019-02-19 23:59 by WA9PIE
Description The Logbook maintains several maps of logbook column names to various attributes, such as length, data type, screen name, and so on. Theses are implemented by instances of the MFC CMap<> templated class.

Each instance tracks about 140 columns. However, they use the default hash table size of 17, which results in poor, near-linear lookup performance. Because these maps are consulted once per column, once per row, the effect of any inefficiency in their implementation is significantly amplified. At intialization, InitHashTable() should be called to set the size of the hash table to a size appropriate for its anticipated capacity.

Revision 2019-02-17 14:09 by K7ZCZ
Description
The Logbook maintains several maps of logbook column names to various attributes, such as length, data type, screen name, and so on. Theses are implemented by instances of the MFC CMap<> templated class.

Each instance tracks about 140 columns. However, they use the default hash table size of 17, which results in poor, near-linear lookup performance. Because these maps are consulted once per column, once per row, the effect of any inefficiency in their implementation is significantly amplified. At intialization, InitHashTable() should be called to set the size of the hash table to a size appropriate for its anticipated capacity.