New issue
Advanced search Search tips

Issue 806733 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 3
Type: Bug



Sign in to add a comment

PDF scrolling very slow with dense vector graphics

Project Member Reported by joh...@chromium.org, Jan 29 2018

Issue description

Chrome Version: 64.0.3282.99 beta and 63.0.3239.132
OS: Ubuntu Trusty and OS X 10.13.2 respectively

What steps will reproduce the problem?
(1) Go to https://arxiv.org/pdf/1511.00830v6.pdf
(2) Scroll to page 7 (with the dense point cloud)

What is the expected result?
Scrolling takes a few tens of ms.

What happens instead?
Scrolling freezes for about 4 *seconds* (on a very powerful desktop).

This seems to be due to the dense point clouds in Figure 4, which seem to have been encoded as vector graphics.
 
Labels: -Pri-2 Pri-3
Owner: hnakashima@chromium.org
Status: Assigned (was: Untriaged)
All PDF readers I tried get a hiccup when rendering that. We may be able to optimize PDFium and reduce our time, but I don't think it's realistic to get under 100ms.

One improvement we could make is show a blank or otherwise marked as "loading" page while the current one is being rendered for these cases.
Owner: ----
Status: Available (was: Assigned)
AFAIK the fastest PDF renderer is SumatraPDF, which requires ~2 seconds when opened directly on page 7 via "SumatraPDF 1511.00830v6.pdf -page 7", however if I slowly scroll the document from the first page (like I'm skimming it) there's no pause at all - evidently due to prerendering. Chrome could probably implement prerendering too.

Chrome also doesn't cache the page once it's scrolled out of view so it hangs for a few seconds every time it's scrolled into view, and this makes Chrome look rather dumb. Especially since it doesn't display any kind of progress indicator so the user keeps scrolling the wheel, which results in jumping to the wrong page, which evicts the slow page from cache, so the user has to scroll back, and wait for the page to render again, and sometimes again, and again - depending on how quick the user is to notice that Chrome is slooooow.

Sign in to add a comment