bug-gnustep
[Top][All Lists]
Advanced

[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.


Attachment: gsimap.patch
Description: Fix size and limit size patch


Wim Oudshoorn

reply via email to

[Prev in Thread] Current Thread [Next in Thread]