Have you tested Eggplant with VNC compression products?

I’m relatively new to the world of VNC but my initial impression is that it can be slow. I’ve followed many suggestions for speeding up the performance of VNC but was wondering if you have investigated using VNC compression products such as Tight VNC or VNC tight encoder.

VNC and the RFB protocol support a number of different compression algorithms (they are usually referred to as Encodings).

Eggplant supports the following Encodings (from most to least compressed), you can control which are enabled in the Eggplant Preferences menu.

ZRLE (a Run Length Encoding followed by a Gzip of the data)
ZlibHex (a tiled encoding that supports Gzipped data)
ZRaw (the bitmap changes Gziped)
HexTile (a tiled encoding format)
RRE (Rise and Run Encoding)
CoRRE (Extended Rise and Run Encoding)
CopyRect (For Copying Rectangles that are already at the client machine)
Raw

Keep in mind that not all VNC servers support all encodings. RealVNC doesn’t support ZlibHex and ZRaw, and TightVNC doesn’t support ZRLE. OSXvnc supports all of the formats used above. When connecting to a server that doesn’t support an encoding you don’t need to disable them - Eggplant will automatically negotiate a setting.

We do not support Tight encoding primarily because the best tight encodings use lossy compression - fine for remote control but very bad for Eggplant Image comparison.

Eggplant supports the following Encodings (from most to least compressed), you can control which are enabled in the Eggplant Preferences menu.

ZRLE (a Run Length Encoding followed by a Gzip of the data)
ZlibHex (a tiled encoding that supports Gzipped data)
ZRaw (the bitmap changes Gziped)
HexTile (a tiled encoding format)
RRE (Rise and Run Encoding)
CoRRE (Extended Rise and Run Encoding)
CopyRect (For Copying Rectangles that are already at the client machine)
Raw

Keep in mind that not all VNC servers support all encodings. RealVNC doesn’t support ZlibHex and ZRaw, and TightVNC doesn’t support ZRLE. OSXvnc supports all of the formats used above. When connecting to a server that doesn’t support an encoding you don’t need to disable them - Eggplant will automatically negotiate a setting.

So does this mean that we won’t harm performance/reliability by enabling all these puppies (above) and is that the smartest tweak to try if we are trying to improve speed of access to the SUT?

Please let me know,

Teletubby

None of those settings should hamper reliability since they are all supported by Eggplant. If a particular server does not support an encoding then it will just negotiate to use one of the others. Artifacts aren’t cause by these encodings which are all lossless encodings, they happen for other reasons and are generally not impacted by the encoding setting.

As far as performance impact that can depend. Those encodings are listed in order from most compressed to least compressed. But most compressed requires the most load placed on the CPU’s of both the Eggplant machine and the SUT. So if you are dealing with a SUT or Eggplant machine that doesn’t have spare CPU cycles but you do have large bandwidth between the two machines (eg 100MB or 1GB ethernet) then I would recommend using Hextile or ZlibRaw which offers a good balance.

If you are using a low bandwidth connection (1MB or less) then I would almost always encourage you to use the best compression possible.