[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