#181 closed task (worksforme)
to yield or not to yield
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | trivial | Milestone: | 0.8 |
Component: | core | Version: | trunk |
Keywords: | Cc: |
Description
r1365 introduced the XPRA_YIELD
environment variable to toggle thread yielding in both network threads (protocol.py) and encoding thread (server_source.py).
Which means we now have graphs comparing with/without yield (also split between each type of yield) here:
https://www.xpra.org/stats/YIELD-vs-NOYIELD/
Notes:
- each page has two sets of graphs: there is no download limit in the top half and (128-KB/s-down, 32-KB/s-up, 100ms-latency) in the bottom half
- gtkperf is problematic throughout.. (beware when looking at specific graphs: in some cases it performed very badly, which means other measures like latency will actually look good!)
- deluxe and polytopes benefit a lot from yielding with download limits
- the client latency has some conflicting results, 'eruption' is much worse with yielding but most other tests are either unchanged or much improved ('polytopes', 'rss-glx*')
- the number of packets sent is the same or higher when yielding
- we manage to send more pixels/s, although it seems that in a number of cases only one type of yielding is beneficial and having both negates the gains (and in a few cases, actually perform worse!)
- apart from 'polytopes' and 'eruption', when it comes to regions/s, the yielding in the network code is the big winner
And so, the conclusion is... to leave it as it is for now and run more tests once a few other performance/latency issues are resolved.
Change History (3)
comment:1 Changed 10 years ago by
Milestone: | 0.6 → 0.8 |
---|---|
Status: | new → accepted |
comment:2 Changed 9 years ago by
Resolution: | → worksforme |
---|---|
Status: | accepted → closed |
We may revisit things later, but this seems to work ok for now.
comment:3 Changed 17 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/181
Note: See
TracTickets for help on using
tickets.
Review with 0.7 release: