The deferred update setting shouldn't make any difference on a
high-speed network, although in the long term I will look at tweaking it
for better WAN performance (that's the next project after getting the
LAN performance in the ballpark.)

CPU percentages and frame rates, in and of themselves, tell only part of
the story.  We can't tell just by looking at the frame rate what is
actually limiting it.  We have to additionally compute the "CPU-limited
frame rate" and the "network-limited frame rate", which express how many
frames/second that the server CPU and the network could theoretically
process.  These are inversely related to the encoding time for each
frame and the frame size.  In other words, the longer it takes to encode
a single frame, the fewer frames/second that the server CPUs can process
before becoming 100% busy.  Likewise, the larger each frame is on the
network, the fewer frames can fit into the available bandwidth.

We're on a gigabit network, so the network is not even close to being a
limiting factor here.  We then look at the CPU-limited frame rate and
observe that that isn't the bottleneck either.  Thus, we can conclude
that the main bottleneck to the overall frame rate is the client.

By observing the CPU-limited frame rate, we conclude that removing this
client bottleneck would cause the bottleneck to shift to the server, but
it would still be much slower than TurboVNC, at least for the JPEG cases
(since the server's CPU-limited frame rate is about 12 fps.)  Thus, both
client and server need to be optimized.

I'm currently looking at how to add the 32-bit pixel format extensions
to libjpeg/SIMD as well as make it run on 64-bit.  The former should
allow me to eliminate some buffer copies in the Tight encoder/decoder,
which is step 1 of probably about 5 or 6 steps that will be required to
optimize this.

Pierre Ossman wrote:
> The numbers are a bit confusing. TigerVNC is given a lower framerate,
> but it does so with less CPU. So what is keeping it from outputing the
> frames at the same rate? Is the "deferred update" setting the same in
> both implementations?
>
>   


------------------------------------------------------------------------------
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to