Activity log for bug #1396993

Date Who What changed Old value New value Message
2014-11-27 12:37:56 Jussi Pakkanen bug added bug
2014-11-27 12:58:28 Pete Woods description The way dbus-cpp's templating system works makes it extremely slow and cumbersome to use in day-to-day development. As an example, just compiling the benchmark application is incredible slow. To test, have an up-to-date build of dbus-cpp and then do this: touch ../examples/benchmark/main.cpp time make This takes almost 50 seconds on krillin and 5 seconds on an i7 desktop machine with 16 GB of ram. This makes any sort of iterative development infeasible. As a symptom of this, rebuilding indicator-network on Jenkins takes about half an hour. Even worse is the fact that you can't compile in parallel, because every gcc process takes so much memory that if you spawn several the device runs out of memory and the OOM killer starts terminating your compile processes. This even happens on laptops. If you have a machine with 4 cores and 4 gigs of RAM, you can't do -j4 because every gcc process takes about a gig of RAM leading to death by disk swapping. For comparison, compiling a Qt5 app (from scratch) that uses roughly the same DBus interfaces as indicator-network takes less than a minute. The way dbus-cpp's templating system works makes it extremely slow and cumbersome to use in day-to-day development. As an example, just compiling the benchmark application is incredibly slow. To test, have an up-to-date build of dbus-cpp and then do this: touch ../examples/benchmark/main.cpp time make This takes almost 50 seconds on krillin and 5 seconds on an i7 desktop machine with 16 GB of ram. This makes any sort of iterative development infeasible. As a symptom of this, rebuilding indicator-network on Jenkins takes about half an hour. Even worse is the fact that you can't compile in parallel, because every gcc process takes so much memory that if you spawn several the device runs out of memory and the OOM killer starts terminating your compile processes. This even happens on laptops. If you have a machine with 4 cores and 4 gigs of RAM, you can't do -j4 because every gcc process takes about a gig of RAM leading to death by disk swapping. For comparison, compiling a Qt5 app (from scratch) that uses roughly the same DBus interfaces as indicator-network takes less than a minute.