Xpra: Ticket #1953: optimize based on new profiling

Found An awesome new Python profiler: py-spy!

Server running glxspheres:

  %Own   %Total  OwnTime  TotalTime  Function (filename:line)
200.30% 200.50%   931.7s    932.1s   untilConcludes (4/python2.7/site-packages/xpra/net/bytestreams.py:111)
 78.30% 100.00%   439.3s    465.8s   gtk_main (4/python2.7/site-packages/xpra/gtk_common/gtk_util.py:598)
  9.20%   9.30%   14.17s    14.26s   do_video_encode (4/python2.7/site-packages/xpra/server/window/window_video_source.py:1876)
  7.50%   7.70%   10.56s    10.62s   csc_image (4/python2.7/site-packages/xpra/server/window/window_video_source.py:2047)
  7.10%   7.10%    8.98s     9.04s   get_image (4/python2.7/site-packages/xpra/x11/gtk2/window_damage.py:174)
  7.10%   7.10%    7.85s     7.91s   process_damage_region (4/python2.7/site-packages/xpra/server/window/window_video_source.py:809)
  4.00%   4.00%    4.60s     4.60s   do_video_encode (4/python2.7/site-packages/xpra/server/window/window_video_source.py:1804)
  3.60%   3.60%    4.89s     4.89s   do_video_encode (4/python2.7/site-packages/xpra/server/window/window_video_source.py:1798)
  2.20%   2.20%    2.87s     2.87s   _exit (4/python2.7/site-packages/xpra/gtk_common/error.py:98)
  1.10%   1.10%    1.19s     1.19s   do_damage (4/python2.7/site-packages/xpra/server/window/window_source.py:1149)
  0.40%   0.70%   0.411s    0.695s   get_dimensions (4/python2.7/site-packages/xpra/x11/gtk2/models/core.py:411)
  0.30%   0.30%   0.038s    0.038s   update_averages (4/python2.7/site-packages/xpra/server/source/source_stats.py:99)
  0.30%   0.30%   0.083s    0.083s   do_get_property (4/python2.7/site-packages/xpra/gtk_common/gobject_util.py:32)
  0.30%   0.30%   0.020s    0.020s   get_damage_pixels (4/python2.7/site-packages/xpra/server/source/source_stats.py:91)
  0.30%   0.30%   0.295s    0.295s   get (4/python2.7/Queue.py:161)
  0.20%   0.20%   0.249s    0.249s   formatTime (4/python2.7/logging/__init__.py:430)
  0.20%   0.20%   0.045s    0.045s   queue_packet (4/python2.7/site-packages/xpra/server/source/client_connection.py:345)
  0.20%   0.20%   0.226s    0.226s   getMessage (4/python2.7/logging/__init__.py:330)
  0.20%   0.30%   0.528s    0.690s   emit (4/python2.7/logging/__init__.py:896)
  0.20%   0.20%   0.033s    0.033s   is_managed (4/python2.7/site-packages/xpra/x11/gtk2/models/model_stub.py:51)
  0.20%   0.30%   0.090s    0.180s   _contents_changed (4/python2.7/site-packages/xpra/x11/server.py:738)
  0.10%   0.10%   0.012s    0.012s   __len__ (4/python2.7/site-packages/xpra/net/compression.py:212)
  0.10%   2.80%   0.104s     2.85s   _forward_contents_changed (4/python2.7/site-packages/xpra/x11/gtk2/models/core.py:308)
  0.10%  27.90%   0.010s    38.92s   encode_loop (4/python2.7/site-packages/xpra/server/source/client_connection.py:369)
  0.10%   0.60%   0.029s    0.923s   write (4/python2.7/site-packages/xpra/net/bytestreams.py:310)
  0.10%   0.10%   0.013s    0.028s   __init__ (4/python2.7/logging/__init__.py:306)
  0.10%   0.10%   0.010s    0.010s   make_data_packet_cb (4/python2.7/site-packages/xpra/server/window/window_source.py:1568)
  0.10%   0.10%   0.005s    0.135s   damage (4/python2.7/site-packages/xpra/server/window/window_source.py:1114)
  0.10%   0.20%   0.021s    0.395s   _log (4/python2.7/logging/__init__.py:1299)
  0.10%   0.10%   0.003s    0.003s   _add_chunks_to_queue (4/python2.7/site-packages/xpra/net/protocol.py:410)
  0.10%   0.10%   0.040s    0.041s   do_video_encode (4/python2.7/site-packages/xpra/server/window/window_video_source.py:1801)
  0.10%   0.10%   0.009s    0.016s   do_send_delayed_regions (4/python2.7/site-packages/xpra/server/window/window_video_source.py:717)
  0.10%   0.10%   0.037s    0.052s   damage (4/python2.7/site-packages/xpra/server/source/windows_mixin.py:536)

Which already shows some places where we spend more time than expected (ie: get_dimensions, clone_plane), or that are in the hotpath and should be optimized (__len__?).



Mon, 10 Sep 2018 05:56:52 GMT - Antoine Martin: status changed

clone_plane moved to #1954.


Sun, 23 Sep 2018 05:17:11 GMT - Antoine Martin: milestone changed


Tue, 12 Feb 2019 15:52:51 GMT - Antoine Martin: status changed; resolution set

Minor saving: r21646. Newer samples:

I don't see anything surprising here, no obvious wastage.


Sat, 23 Jan 2021 05:38:13 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1953