mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2024-12-11 09:20:46 +01:00
41 lines
1.6 KiB
Plaintext
41 lines
1.6 KiB
Plaintext
This directory contains the evaluation of the multi-core implementation
|
|
in the decoder. The baseline is the performance before the addition of
|
|
the DecodeManager class.
|
|
|
|
Tests were performed on the following systems:
|
|
|
|
- eLux RP Atom N270 1.6 GHz
|
|
- Lubuntu 13.10 i.MX6 Quad 1.2 GHz
|
|
- Fedora 22 i7-3770 3.4 GHz
|
|
- Windows Vista Core 2 Duo E7400 2.8 GHz
|
|
- Windows 10 i3-4170 3.7 GHz
|
|
- OS X 10.6 Core 2 Duo 2.53 GHz
|
|
- OS X 10.11 i5 2.3 GHz
|
|
|
|
The systems were tested with:
|
|
|
|
a) The old, baseline code
|
|
b) The new code with all CPUs enabled
|
|
c) The new code with only one CPU enabled
|
|
|
|
The test itself consists of running decperf on the test files from the
|
|
TurboVNC project. Rate of decoding is then compared to the baseline.
|
|
Note that the CPU time is divided by core usage in the multi CPU cases
|
|
in order to derive total decoding time. This method is sensitive to
|
|
other load on the system.
|
|
|
|
On average, there is no regression in performance for single CPU
|
|
systems. This however relies on the addition of the single CPU shortcut
|
|
in DecodeManager. Without that the performance sees a 10% lower rate.
|
|
|
|
Dual CPU systems see between 20% and 50% increase, and the quad core
|
|
systems between 75% and 125% on average. OS X is an outlier though in
|
|
that it gets a mere 32% increase on average. It is unknown why at this
|
|
point and tracing doesn't reveal anything obvious. It may be because it
|
|
is not a true quad core system, but rather uses HyperThreading.
|
|
|
|
So in summary, the new code can do a noticeable improvement on decoding
|
|
time. However it does so at a cost of efficiency. Four times the CPUs
|
|
only gives you about twice the performance. More improvements may be
|
|
possible.
|