While the GObject system gives C programmers a powerful object model to build upon, C programs using the GObject has significant overhead, comparable to the virutal machines of languages like Java. So one may wonder if writing in C using GObject is really worth it, given the performance overhead and the manual labor needed (more than, say, C++ or Java) on the programmer's part for the boilerplate code?
Are there ways to dynamically optimize the GObject system at run time to reduce signal emission overhead?