
Christophe, thanks for the benchmarking program! I'm in the process of removing the boost::any usage in signals. Right now I've moved everything into a header file. My numbers look a bit better. razeh@squirmy:~/boost-signals$ ./tbs-snapshot 4 10000000 ================================================================== call dummy::operator() #Slots #Calls boost::signals sigc++-2.0 Ratio 0 100 0 0 nan 0 1000 0 0 nan 0 10000 0.01 0 inf 0 100000 0.07 0.01 7 0 1000000 0.75 0.03 25 0 10000000 7.61 0.31 24.5484 1 100 0 0 nan 1 1000 0 0 nan 1 10000 0.02 0 inf 1 100000 0.13 0.04 3.25 1 1000000 1.32 0.39 3.38462 1 10000000 13.28 3.66 3.62842 2 100 0 0 nan 2 1000 0.01 0 inf 2 10000 0.02 0 inf 2 100000 0.19 0.04 4.75 2 1000000 1.9 0.4 4.75 2 10000000 18.92 3.88 4.87629 3 100 0 0 nan 3 1000 0.01 0 inf 3 10000 0.02 0.01 2 3 100000 0.24 0.05 4.8 3 1000000 2.39 0.43 5.55814 3 10000000 23.83 4.14 5.75604 ================================================================== call A::operator() #Slots #Calls boost::signals sigc++-2.0 Ratio 0 100 0 0 nan 0 1000 0 0 nan 0 10000 0.01 0 inf 0 100000 0.07 0.01 7 0 1000000 0.76 0.03 25.3333 0 10000000 7.68 0.33 23.2727 1 100 0 0 nan 1 1000 0 0 nan 1 10000 0.02 0 inf 1 100000 0.16 0.06 2.66667 1 1000000 1.62 0.6 2.7 1 10000000 15.93 6.06 2.62871 2 100 0 0 nan 2 1000 0 0 nan 2 10000 0.03 0.01 3 2 100000 0.25 0.09 2.77778 2 1000000 2.43 0.84 2.89286 2 10000000 24.32 8.43 2.88493 3 100 0 0.01 0 3 1000 0 0 nan 3 10000 0.03 0.01 3 3 100000 0.31 0.12 2.58333 3 1000000 3.21 1.08 2.97222 3 10000000 31.93 10.95 2.91598 razeh@squirmy:~/boost-signals$ uname -a Linux squirmy 2.6.8-2-k7 #1 Thu May 19 18:03:29 JST 2005 i686 GNU/Linux razeh@squirmy:~/boost-signals$ gcc -v Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux Thread model: posix gcc version 3.3.5 (Debian 1:3.3.5-13) I've attached a patch --- but I haven't done much testing with it, and it represents something I'm in the middle of.