Peter Weilbacher wrote:
> I am investigating why long pages display really slowly on OS/2 (this is
> mainly bug 258136). I found out that it likely some kind of timer problem,
> we seem to be repainting much more often than we should be (and call
> into _PR_MD_GET_INTERVAL() even more). If I switch to the low-resolution
> timer (high-res is the default) that only gives us granularity of 1ms,
> long pages loads 4 to 6 times faster, with a similar reduction in the
> number of painting calls.
> So, I basically want to know why the timer resolution directly influences
> the number of repaints.
> 
> A user also remarked that by tweaking some timer values, like
>    user_pref("content.notify.interval", 750000);       (default=120000)
>    user_pref("content.max.tokenizing.time", 3000000);  (default=360000)
>    user_pref("content.notify.backoffcount", 5);        (default=-1)
> he gets the same (or better) speed improvement than with the low-res
> timer.
> Now, loading the page takes about 3min to load with the high-res timer,
> so it should repaint about a maximum of 1500 times (180s/120000us) with
> the default settings, as repaints should not occur more often than
> content.notify.interval. But I'm seeing more than 7000 repaints (looking
> at call numbers of nsWindow::OnPaint). Did I understand something wrong
> or is that a bug?
> 
> Also, I see that the above backoffcount setting stops the repaints
> before the page is loaded completely. But this works on some "plain"
> pages (like the test page attached to bug 258136) but not on complex
> ones like http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox
> Why does backoffcount=5 not stop repainting of while loading that page?

I know some of the timer code involved there uses NSPR calls that use a 
different unit for time than milliseconds. It then tries to convert back 
and forward between this unit and milliseconds.

A guess would be that some of this conversion goes wrong which ends up 
causing you to reflow much more often than intended.

All of this happens in nsHTMLContentSink.cpp and nsContentSink.cpp.

It's a shot in the dark guess, but at least something to look into...

/ Jonas
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to