From: Ian M. <ia...@op...> - 2008-11-29 00:50:10
|
>> Perhaps a short-term solution: allow the application to turn off >> support for storing Ruby objects *exclusively* in a GTK+ GUI. So this >> would mean the bindings wouldn't have to do any garbage collection at >> all. [snip] >> >> What do you all think? > > I think that we need to profile where is the bottle neck > before trying a new idea. Attached is a Sysprof profile of Luz (a ruby-gnome2 application) forcing garbage collection repeatedly. Also attached are two screenshots taken of the same sysprof data, for easy consumption. The problem I'm trying to solve is that each GC run takes over 100ms, preventing smooth graphics animation. These methods seem to stand out (shown here with relative "Self" times): g_object_class_list_properties / g_param_spec_pool_list (7) / pool_depth_list (4) / g_type_is_a (11) Any thoughts for improving this situation? It would be far better for Luz if GC took more CPU time *overall*, but with shorter *spikes*. (Not pausing the application for very long at a time.) I'm happy to dig deeper and do more testing/profiling if needed. Best, -Ian |