
Jody Hagins wrote:
I have not done much examination either, but to satisfy my curiosity, I hacked together a "lite" implementation of the signals interface that provides *minimum* functionality. Same interface as boost::signal<>, w.r.t. connect(), disconnect() and operator() (i.e, dispatching a signal). Also, allows connect/disconnect/replace inside a slot handler. It does not provide return value combining and the fancier features.
This is very useful information! The primary observation I make from this is how much slower by ratio Boost.Signals is. I'm going to look at your test 'lite' implementation later. Is there some additional feature Boost.Signals is offering that causes it to do all of this extra work?
Note that there seems to be some heavy overhead just in calling signal(). The output files show several different size runs, on two different architectures/compiler versions.
It's also useful to know how much of a win it is to group as many calls as possible into a single signal rather than separating them into separate signals. Aaron W. LaFramboise