-
Notifications
You must be signed in to change notification settings - Fork 946
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Severe performance regression in TigerVNC 1.4 relative to 1.2 and 1.3 #63
Comments
Also, the spreadsheet of results: |
Further information-- this issue does not just exist at the low level. It is reproducible in end-to-end tests using GLXspheres and TCBench as well. The basic problem is that both the encoder and decoder are now taking 20-40% more CPU time than they did previously. This limits the performance that is achievable in a LAN environment, and in a WAN environment, it increases server load, which affects the number of users that can share the system. |
For the 24-bit datasets, I can confirm that PR #119 fixes the performance regression, and with my hacked-together benchmarks, the performance is now within +/- 5% of TigerVNC 1.3.x. I do still see a regression in the 8-bit and 16-bit datasets on the encoding side-- the 16-bit datasets take generally about 8-10% longer to encode under TigerVNC 1.4.x than TigerVNC 1.3.x, and the 8-bit dataset takes generally about 20% longer. This is not really of much concern to me, since VirtualGL never uses anything but a 24-bit screen depth. The decoder is now similarly within +/- 5% of TigerVNC 1.2. I am also evaluating your new encperf/decperf utilities and will comment on those in the PR. |
Also, please let me know when this fix lands in a release (I assume TigerVNC 1.4.3), so I can document to the VirtualGL community that we recommend upgrading to that release rather than using TigerVNC 1.4.0 - 1.4.2. There is at least one ThinLinc customer who reported this to me as well, so they will be interested to know when the fix lands in a ThinLinc update. |
I was hoping we would do a 1.5.0 next. |
What new features are there that would necessitate a major release? |
There's been a lot of non-bug fix changes, but I haven't made a list yet. IPv6 in the server would be one change. |
That's up to you, but please be aware that VirtualGL users have been warned away from TigerVNC 1.4.x until this issue is resolved. As I've mentioned before, I consider performance to be part and parcel of quality, so a performance regression is a bug. As soon as this bug is fixed, I will inform the VirtualGL community that, if they are using TigerVNC, they should upgrade to the new version. Again, this issue has popped up in commercial deployments-- specifically from VirtualGL users at Volvo, who reported subpar 3D performance with the latest ThinLinc release, and I strongly suspect that it's due to this. So unless you're talking about putting out TigerVNC 1.5 like next week, I would strongly recommend putting out a 1.4.3 release. |
On Mon, Feb 23, 2015 at 3:50 PM, DRC notifications@github.com wrote:
Tim, Let me know if you need any of your recent commits back-ported to 1.4 as Thanks, |
On Wed, 2015-02-25 at 08:55 -0500, Brian Hinz wrote:
I'm happy to wait for them. It isn't causing a big problem to carry them Tim. |
Unfortunately, I find that the refactored encoder and decoder have significantly regressed in performance relative to TigerVNC 1.3.x-- by about 20-30% on the encoding side and 30-40% on the decoding side. I consider this to be a bug, as it affects the suitability of TigerVNC as a solution for VirtualGL.
Some notes:
compare-encodings
with the -o option to generate encoded session files, and I played those back through vncviewer to verify that they were correct. This was done both with the CUT active and inactive, and for both the TigerVNC 1.2/1.3 encoder and the new 1.4 encoder.If you want to reproduce my results, you will need:
Encoder tests:
http://www.turbovnc.org/files/TurboVNC-Benchmark-Tools-Scripts.tar.bz2
Decoder tests:
The text was updated successfully, but these errors were encountered: