Despite many changes to the namespace code: r4752, r3914, r3883, r3825, r3739, r3689, r3684, r3680, r3674, etc..
This is still wrong and stoopid. The data should be structured in nested dictionaries and we should let the client flatten it when printing it out.
ie:
window[1].encoding.speed.90p=65 window[1].encoding.speed.cur=50 ...
should be sent as:
windows : { 1 : { "encoding" : { "speed" : { "90p" : 65, "cur" : 50, } } } }
Which makes much more sense than building strings client-side for looking up the data we want!
A good idea, but difficult to implement. Re-scheduling.
Let's expose the new info via the dbus interface (#904), so we can generate the data in a more structured format and flatten it for the old interface.
The new interface can also include a subsystem filter, and a regex filter so we can avoid sending too much stuff.
This should be taken advantage of to reduce the cost of the info packets we send when the session statistics dialog is shown. The packet should also be compressed and then sent from the worker thread rather than UI and network threads. It could also be compressed much more from the worker - though this should be moot if we have filtered enough.
work in progress patch
updated patch
updated patch - mostly complete
Along the way, fixed two major bottlenecks in xpra info: r12178 + r12179. Which should be backported.
With those improvements, the info request takes mere milliseconds to process and the resulting packet is now much smaller. This means that the filtering becomes much less important.
Mostly done in r12183. See commit message. (xpra info performance fixes backported in r12185 + r12186)
The xpra info client can now also be used to print the structured data without flattening it:
XPRA_FLATTEN_INFO=0 xpra info
The code is now much faster and cleaner. In terms of user visible changes, there should not be any (bar cosmetic ones in xpra info output).
Things left to verify / fix:
More conversion and fixes: r12224 (gtk info), r12206 (net caps), r12189 (fix child reaper and test), r12261 (misc), r12262 (session info), r12265 + r12266 + r12267 (related refactoring)
As of r12264:
XPRA_FLATTEN_INFO=1 xpra info
or just xpra info
prints the info data (almost) the same as before
XPRA_FLATTEN_INFO=0 xpra info
prints the data in a dense python structure format (useful for loading up into an interpreter for example)
XPRA_FLATTEN_INFO=2 xpra info
will print a more user-friendly format (indented)
I have verified everything except the proxy server.
@afarr: mostly a FYI, feel free to close. (will follow up in #1154)
Fix for the dbus server (#904) in r12300.
This notification is here to notify you that this has been noticed.
Closing.
The flatten info flag definitely produces a drastically different output.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/486