$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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