[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GSIMap.h improvements
From: |
Wim Oudshoorn |
Subject: |
GSIMap.h improvements |
Date: |
Fri, 27 Feb 2004 14:56:53 +0100 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3.50 (darwin) |
Problem
-------
(1) The code to determine the bucket table size (hash key size)
can be divisble by arbitrary powers of 2.
This leads to performance degradation.
(2) For large tables the implementation allocates large
chunks of memory. This is a problem when you have
address space fragmentation. Also the way
it allocates memory leads to address space fragmentation on
the Windows platform.
On Linux using large memory blocks degrade performance.
(Has to do how memory is allocated)
Solution
--------
(1) Check if table size is divisible by two, if this is the
case increase table size by 1.
(2) Limit the size of the chunks allocated.
Notes
-----
* Still needs to check what the appropriate limit is in case
of Linux. Now just use 4Mb as limit.
gsimap.patch
Description: Fix size and limit size patch
Wim Oudshoorn
- GSIMap.h improvements,
Wim Oudshoorn <=