mldonkey-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-users] [patch #4613] Optimizing Set.cardinal


From: pango
Subject: [Mldonkey-users] [patch #4613] Optimizing Set.cardinal
Date: Sat, 12 Nov 2005 09:32:04 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050927 Galeon/1.3.20 (Debian package 1.3.20-1)

URL:
  <http://savannah.nongnu.org/patch/?func=detailitem&item_id=4613>

                 Summary: Optimizing Set.cardinal
                 Project: mldonkey, a multi-networks file-sharing client
            Submitted by: mlpango
            Submitted on: sam 12.11.2005 à 09:32
                Category: None
                Priority: 5 - Normal
                  Status: None
             Assigned to: spiralvoice
        Originator Email: 
             Open/Closed: Open

    _______________________________________________________

Details:

Based on profiling
(http://download.berlios.de/pub/mldonkey/pango/profiling/profiling_20051111.txt.bz2),
the next CPU eater (beside memory management), is Set.cardinal.
Sources management uses the size of sources queues quite often (300 times/s
in my test), and its complexity is O(n).

I created a version of set.ml that caches its size in a lazy int. Since
adding and removing elements are the main (only ?) operations on sets used by
mldonkey, I optimized those to also update the counter incrementally.






    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: sam 12.11.2005 à 09:32  Name: set_with_cached_cardinal.patch  Size:
20,81Ko   By: mlpango

<http://savannah.nongnu.org/patch/download.php?item_id=4613&item_file_id=5462>

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/patch/?func=detailitem&item_id=4613>

_______________________________________________
  Message posté via/par Savannah
  http://savannah.nongnu.org/





reply via email to

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