[Spice-devel] [PATCH spice-gtk 00/10] clean-ups and performance (hopefully)
Marc-André Lureau
marcandre.lureau at gmail.com
Sun Sep 8 11:59:23 PDT 2013
From: Marc-André Lureau <marcandre.lureau at gmail.com>
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
More information about the Spice-devel
mailing list