| 10 | == Code Pointers == |
| 11 | Since this is an area that receives constant tuning and improvements, the most reliable source of current information is the code itself: |
| 12 | * [/browser/trunk/src/xpra/server_source.py server_source.py]: this class is instantiated for each client connection. In particular: |
| 13 | * {{{GlobalPerformanceStatistics}}}: collects various statistics about this client's connection speed, the various work queues, etc. The {{{get_factors}}} method returns a guesstimate of how the batch delay should be adjusted for the given parameters ("target latency" and "pixel count") |
| 14 | * {{{calculate_delay_thread}}} which runs at most 4 times a second to tune the batch delay, both the global default one ({{{default_batch_config}}} which is a {{{DamageBatchConfig}}}) and the one specific to each window (see below for details) |
| 15 | * [/browser/trunk/src/xpra/window_source.py window_source.py]: this class is instantiated for each window and for each client, it deals with sending the window's pixels to the client. In particular: |
| 16 | * {{{DamageBatchConfig}}}: the structure which encapsulates all the configuration and historical values related to a batch delay. |
| 17 | * {{{WindowPerformanceStatistics}}}: per-window statistics: performance of the encoding/decoding, amount of frames and pixels in flight, etc. Again, the {{{get_factors}}} method rreturns a guesstimate of how the batch delay should ne agjusted for the given parameters ("pixel_count" and current "batch delay") |
| 18 | |
| 19 | [[BR]] |
| 20 | |
| 21 | Note also that many of these classes have a {{{add_stats}}} method which is used by {{{xpra info}}} to provide detailed statistics from the command line and is a good first step for debugging. |
| 22 | |
| 23 | |
| 24 | == Background on damage request processing == |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |