IBM Support

Performance Tuning for Server side rendering - Daeja ViewONE Virtual

Technical Blog Post


Abstract

IBM Daeja ViewONE Virtual tuning options use new features introduced in version 5.0.5 of ViewONE Virtual with the following HTML parameters:

preFetchSize - to control number of pages that are prefetched and rendered ahead of time
tileXSize and tileYSize - to control the size (and therefore number of) tiles delivered over the network per rendered page

Body

In IBM Daeja ViewONE Virtual, the main document display is a rendered version of the document from the server, delivered as a set of image tiles in the PNG format


Documents are rendered on the server and image tiles are generated for each page. The client-embedded viewer fetches these images from the server across the network that could produce several network requests of many small data packages. The page displaying speed is bounded by the performance of the network between the client and server, and the available resources on the server.
 

Tuning options - all supported formats:

The document tile size is configurable by using the parameters tileXSize and tileYSize.
The number of pages before and after the currently displayed one that is retrieved in the background. (0-7). preFetchSize HTML parameter controls generation of page tiles in advance on the server around the selected page, allowing for pre-fetching the tiles to the client, ready for when needed

The current default behavior of the viewer is to preFetch 7 pages +/- the current page* and to break down the page into tile sizes measuring 256x256 pixels.

This means that typically anything 6 - 20 tiles can be required to deliver a single page. The number of tiles depends on the image size and resolution itself plus other factors such the current zoom level or use of thumbnails. The number of tiles then needs to be multiplied by the number of pages being prefetched.

With the default prefetch of 7 and many tiles per page (say, 20 for a more complex image), this can mean that around 150-200 separate network requests have to be fulfilled just to view the first page of a document.

Experience in the field has demonstrated that for *some* networks, the level of network "chattiness" caused by each page being made up of a number of tiles  can be detrimental to the perceived performance of the viewer.  For such cases, it has been found that reducing the number of tile requests to around 1 per page (by increasing the specified tile sizes) has had a positive impact on the performance of the viewer. In order to reduce the number of tiles being delivered to approximately 1 per page (in most cases) the following tile size settings are suggested:

<param name="tileXSize" value="3000">
<param name="tileYSize" value="3000">

Adjustments to the "preFetchSize" parameter should be based on the actual workflow of the users. For a system where users are typically viewing smaller documents and more interested in the best "time-to-view" first page rather than viewing many pages of a large document using continuous scrolling, you may want to consider lowering this to a value of around 0,1 or 2 to reduce the amount of increased network activity with prefetching +/- 7 pages

<param name="preFetchSize" value="0">

For a system where users are typically viewing large multi page documents and want to scroll through them seamlessly, it is suggested that the preFetchSize is left at the default value of +/- 7 pages since that was determined through extensive load testing internally at IBM to be the optimal value for seamless scrolling without causing memory and resource issues in the client-side browser\server JVM heap

Please note that any value of preFetchSize > 7 is not valid and will not be used by the viewer - only a maximum value of +/- 7 pages is allowed for continuous scrolling, anything more is likely to cause significant issues with both the client-side browser resources and even more importantly resources used up on the server.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSTTN8","label":"IBM Daeja ViewONE Virtual"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.0.5 or later","Edition":"Virtual","Line of Business":{"code":"LOB45","label":"Automation"}}]

UID

ibm10876322