On Sat, Feb 19, 2011 at 04:17:14PM -0600, DRC wrote: > On 2/18/11 4:55 AM, Adam Tkac wrote: > Definite improvement. Here's what I now see with VirtualGL: > > Machine 1: Pentium 4 Xeon 2.8 GHz single core > Machine 2: AMD X2 5050e 2.6 GHz dual core > > 1-->2 > ----- > Server Client > fps CPU Time/ CPU Time/ > (1240x900) Frame (ms) Frame (ms) > -------------------------------------------------------- > 64-bit, no TLS 19.05 33.87 14.54 > 64-bit, TLS 12.00 (-37%) 62.11 (+83%) 20.59 (+42%) > > 32-bit, no TLS 16.54 37.67 16.87 > 32-bit, TLS 10.45 (-37%) 68.84 (+83%) 24.51 (+45%) > > > 2-->1 > ----- > Server Client > fps CPU Time/ CPU Time/ > (1240x900) Frame (ms) Frame (ms) > ---------------------------------------------------------- > 64-bit, no TLS 22.86 29.70 18.29 > 64-bit, TLS 18.78 (-18%) 32.44 (+9.2%) 34.35 (+88%) > > 32-bit, no TLS 17.48 36.39 20.94 > 32-bit, TLS 16.04 (-8.2%) 38.65 (+6.2%) 38.97 (+86%) >
Adding SSH Tunnling to the comparison would be interesting (the CPU time of ssh must be added to the server/client time, as the SSH process does the crypto operations on behalf of TigerVNC). > Very interesting that the Intel machine takes a much larger relative hit > than the AMD machine. Hasn't the pentium 4 suffered from log pipelines (high clock frequency, but fewer operation per clock cycle)? libgcrypt only ships optimized assembler code (also using the various vector extensions) for asymetric cipher like RSA. libgcrypt is mostly classic C code (including the symetric ciphers), so it takes advantage of fast integer units. I did some profiling: With TLS, the vncviewer hot spots are: * ~23% in libgcrypt * ~14% in the jpeg code * ~14% again in the jpeg code With TLS, the Xvnc hot spots are: * 17.4% in zlib * 14.3% libcrypt * 13% rfb::ComparingUpdateTracker::compareRect * 12% in the jpeg code For zlib, I need to check, what portion is triggered by gnutls. I also need to find out, what the libgcrypt hotspot is - I assume, it's AES/DES or a similar symetric cipher. If somebody wants to improve the overall performance of Xvnc, ComparingUpdateTracker::compareRect could be of interest. Regards, Martin Kögler ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel