Free Support Forum - groupdocs.com

Speed up previewing load time


#1

Hi


I am using the Viewer for .NET and have had feedback saying the time it take to load documents is much longer than the expected load time for documents of respective sizes.

I understand the process that the viewer uses to generate the display adds significant load time compared to just downloading a document.

At the moment we simply read the document into stream and return the view as the code below demonstrates. We use a simple IIS configuration as well.

Is there any ways that you recommend I can speed up the service without scaling machine resources?

var client = new HttpClient();
var stream = await client.GetStreamAsync(url);
var uri = new Uri(url);
var streamModel = new StreamModel()
{
DocumentStream = stream,
DocumentName = Path.GetFileName(uri.LocalPath),
DocumentExtension = Path.GetExtension(uri.LocalPath),
DocumentDisplayName = Path.ChangeExtension(title, Path.GetExtension(uri.LocalPath)),
Color = String.Concat("#", color),
FullFileName = uri.LocalPath.Split(’/’).Last(),
StartDate = DateTime.UtcNow
};
return View(streamModel);


Thanks

Sam

#2

Hi Sam,


Thank you for the request. By default, when you open a web-page with GroupDocs.Viewer widget, and the target document is invoked (for displaying), on the server-side GroupDocs.Viewer converts the document to the images and text (for the image-based rendering) or to the HTML, images, fonts, and CSS (for the HTML-based rendering). Only when this conversion process is finished, GroupDocs.Viewer begins to transmit data to the client-side and end-user can see content of the document in the browser. That’s why it takes so much time - GroupDocs.Viewer needs to convert all document, and they are really big. The conversion speed depends on the performance of the server - CPU, memory, storage.

However, there is a “PreloadPagesCount” method. When using it, for example, “.PreloadPagesCount(1)”, GroupDocs.Viewer begins to transmit data to the client-side when only first page of the document is converted. After applying this method to the document (17 MiB), GroupDocs.Viewer shows its first page almost instantly. All other pages are shown on demand, when you try to open them.

There are some other methods to increase performance:
1. Try to use HTML-based rendering mode (“UseHtmlBasedEngine(true)” method) if it is suitable for you and there are no document distortions.
2. Use “PreloadPagesCount(1)” method. When using this method GroupDocs.Viewer will begin to load document to the client-side when first page of the document will be converted. When this method is not used, GroupDocs.Viewer converts all pages of a document and only then sends it to the client-side.
3. Use “MinimumImageWidth(value)” method. MinimumImageWidth: if set, the Viewer will load page images with the specified width from the server when starting. It will not load page images from the server again after zooming if the current page image size is smaller than the value specified and if the original (not scaled) page image size is smaller than the value specified. It means that in most cases the GroupDocs.Viewer will load page images only once and will not reload them after zooming in/out.
4. If this is possible for your business-logic, disable thumbnails (“ShowThumbnails(false)”).
5. If this is possible for your business-logic, disable ability to select text by using “SupportTextSelection(false)” method.
6. Use “ShowViewerStyleControl(false)” method - it will disable “double page flip” option and will increase performance.

Best regards.

#3

Hey


Thanks for this information, it has helped speed up previewing substantially. I am wondering if within the Signature library views if we can implement the same functionality.

When we prepare / sign documents it takes a long time to load and I can’t see anywhere in the documentation if this is support or not.

I would like to use the following settings on my signature views as well:

.PreloadPagesCount(1)
.SupportTextSelection(false)
.ShowViewerStyleControl(false)

Can you let me know if this is possible?

Thanks again
Sam

#4

Hi Sam,


Thank you for the question. These two libraries (Viewer and Signature) is absolutely different products and the Signature library doesn’t have same methods and options as the Viewer. Since that parameters that you want to use doesn’t supported in the Signature.

Sorry for the inconvenience.

#5

Hey Pavel


I was quite impressed by the performance increase in previewing.

I understand that previewing and signing are two different products, however I would really like to see these speed improvements available in signature. As we use both libraries we will now have fast previewing but significantly slower signing. Are there any ways to speed up the loading of documents in the signature library?

Thanks

Sam

#6

Hey


I’m still waiting for a response on this. We are experiencing some very slow document load times with our .NET Signature Library in comparison with the improved previewing.

Thanks
Sam

#7
Hello Sam,

Sorry for the delay with answer.

As Pavel has mentioned earlier, GroupDocs.Viewer for .NET , GroupDocs.Comparison for .NET and GroupDocs.Signature for .Net are different libraries and all of from them have different engines for rendering documents. At the moment our Comparison and Signature libraries don't have any methods to speed up the document rendering. But you can try to increase operational memory for your PC, to speed up these operations of rendering.

Now, our Product team is working on entirely new Signature and Comparison products that will have improvements of rendering speed, but these products on development stage and we have no estimated date when these products will be available, but it should be next year. You can follow our news letters, to know the date of these libraries release.

If you will have more questions please feel free to contact us.

-------

Best regards,
Evgen Efimov

http://groupdocs.com
Your Document Collaboration APIs
Follow us on LinkedIn, Twitter, Facebook and Google+