Boost logo

Boost :

From: Robert Zeh (razeh_at_[hidden])
Date: 2005-03-30 21:28:47


After consulting with Doug Gregor I've done some more work on signals
performance. The patch I've attached removes the pImpl idiom in
named_slot_map and iterator_facade.

The signals regression tests still past.

The performance numbers look better. Here are the speed test numbers
from the current boost CVS.

===== 1000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 1000 0.0306 0.0003
       10 100 0.0087 0.0001
       50 20 0.0067 0.0001
      100 10 0.0065 0.0001
      250 4 0.0064 0.0001
      500 2 0.0064 0.0001
     1000 1 0.0069 0.0003

===== 10000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 10000 0.2996 0.0027
       10 1000 0.0848 0.0010
       50 200 0.0669 0.0010
      100 100 0.0645 0.0008
      250 40 0.0666 0.0008
      500 20 0.0677 0.0010
     1000 10 0.0697 0.0010
     5000 2 0.0679 0.0031
    10000 1 0.0758 0.0034

===== 100000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 100000 3.0874 0.0270
       10 10000 0.8717 0.0098
       50 2000 0.6830 0.0082
      100 1000 0.6758 0.0075
      250 400 0.6560 0.0075
      500 200 0.6682 0.0082
     1000 100 0.7176 0.0164
     5000 20 0.7018 0.0445
    10000 10 0.7027 0.0369
    50000 2 0.7033 0.0345
   100000 1 0.7202 0.0346

===== 1000000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 1000000 29.9847 0.2791
       10 100000 8.6300 0.0956
       50 20000 6.8220 0.0792
      100 10000 6.5083 0.0778
      250 4000 6.3998 0.0744
      500 2000 6.6824 0.0845
     1000 1000 7.2043 0.2038
     5000 200 7.0582 0.3525
    10000 100 7.1081 0.3722
    50000 20 7.1853 0.4216
   100000 10 7.2921 0.4401
   500000 2 7.8380 0.3574

And the numbers after the pImpl removal:

===== 1000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 1000 0.0025 0.0003
       10 100 0.0008 0.0001
       50 20 0.0006 0.0001
      100 10 0.0006 0.0001
      250 4 0.0006 0.0001
      500 2 0.0006 0.0001
     1000 1 0.0011 0.0003

===== 10000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 10000 0.0255 0.0026
       10 1000 0.0074 0.0009
       50 200 0.0060 0.0008
      100 100 0.0056 0.0007
      250 40 0.0057 0.0007
      500 20 0.0064 0.0009
     1000 10 0.0107 0.0009
     5000 2 0.0114 0.0031
    10000 1 0.0120 0.0034

===== 100000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 100000 0.2454 0.0260
       10 10000 0.0733 0.0090
       50 2000 0.0580 0.0074
      100 1000 0.0599 0.0071
      250 400 0.0576 0.0073
      500 200 0.0626 0.0079
     1000 100 0.1244 0.0152
     5000 20 0.1374 0.0371
    10000 10 0.1293 0.0367
    50000 2 0.1182 0.0321
   100000 1 0.1319 0.0341

===== 1000000 Total Calls =====
Num Slots Calls/Slot Boost Lite
--------- ---------- ------- -------
        1 1000000 2.4575 0.2629
       10 100000 0.7389 0.0912
       50 20000 0.6037 0.0759
      100 10000 0.5682 0.0819
      250 4000 0.5722 0.0721
      500 2000 0.6760 0.0866
     1000 1000 1.2747 0.1984
     5000 200 1.3177 0.3473
    10000 100 1.3181 0.3803
    50000 20 1.3439 0.4049
   100000 10 1.3590 0.4173
   500000 2 1.2095 0.3369

All of the numbers are from my Debian 650 MHz Duron.

Robert Zeh




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk