On May 10, 2005, at 7:11 AM, Keith MacDonald wrote:
I have an application that implements the Observer pattern, based on the GOF code and was interested in using Boost.Signals in a new application. Before committing myself, I decided to check the relative performance when signalling two observers. Both tests were performed on Windows XP, using MSVC 8 beta 2, with the /Ox optimisation. Here are the times for 6,000,000 signals, measured with the Win32 GetTickCount() API on a 3GHz P4 with 1GB RAM:
GOF Observer: 109 Boost.Signals: 6203
Clearly, you have to trade convenience for performance with this library.
The performance of Signals has been drastically improved in 1.33.0 thanks to a patch from Robert Zeh. It may still not be as quick as a specific implementation of the Observer pattern, but it's much more reasonable now. Doug