From: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> Hi, Some profiling results show rather obvious bottlenecks that I try to optimize. In general, the patch series is mostly clean-ups, and the performance difference is mostly the change in the coroutine loop, which will now treat all incoming messages before returning to main coroutine, to avoid GMainLoop overhead. Please don't ask exacts results, there is no reliable measurements tools. We are getting there eventually. But in the meantime, the whole series improves by ~10% cpu usage according to my tests using the development version of Alon replay tool. Either we consider those patches good clean-ups, or I'll keep them in a branch until we have better tools, but that might take a while. Obvious slowdowns are now mostly in spice-common canvas: quic decode, spice_pixman_copy_rect, glyphs. Marc-André Lureau (10): display: use bitfields for surface flags Add SPICE_DISABLE_CHANNELS display: replace ring with hashtable display: make the hashtable to destroy the surface display: keep a reference to the primary surface util: avoid calling getenv for every SPICE_DEBUG channel: do not reenter the mainloop at every iteration gtk: use GHashTable in display_cache gtk: use slices for frequently allocated objects gtk: simplify spice_channel_recv_msg gtk/channel-base.c | 1 + gtk/channel-cursor.c | 56 +++++---------- gtk/channel-display-priv.h | 1 - gtk/channel-display.c | 175 +++++++++++++++++---------------------------- gtk/spice-channel-cache.h | 111 +++++++++++----------------- gtk/spice-channel-priv.h | 5 +- gtk/spice-channel.c | 107 +++++++++++++-------------- gtk/spice-session-priv.h | 4 +- gtk/spice-session.c | 58 +++++---------- gtk/spice-util.c | 13 +++- spice-common | 2 +- 11 files changed, 204 insertions(+), 329 deletions(-) -- 1.8.3.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel