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

Reply via email to