[Webkit-unassigned] [Bug 36174] New: Short CachedScript decoded data timer causes performance degradations when using large javascript files

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 16 09:56:01 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=36174

           Summary: Short CachedScript decoded data timer causes
                    performance degradations when using large javascript
                    files
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Windows Vista
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebCore JavaScript
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: david.leong at nokia.com
                CC: laszlo.1.gombos at nokia.com


This bug is a branch off from bug 36080. 

We have noticed that using large javascript files results in a degradation in
performance. 

Our use case contains a HTML page which uses with a large (>1meg) javascript
file. Performance of any javascript class/function in this file is much slower
than having the code split into smaller ~100k file chunks. On mobile devices we
have found that that up to 70% of the time when executing javascript is doing
character conversion and byteOrderMark checking.

After some investigation, we found that two problems:
1) WebCore::CachedScript::script() deletes decoded data with a timer callback
of 0s. If the script file is large this causes the data to be repeatedly
re-parsed many times when javascript core only wants small sections of the
code.

2) JSC::Lexer::setCode() is looking for the byteOrderMark for every character
that javascript core is interested in. For large script files this results in
many overlapping sections that have been checked before for the byte mark.

This bug is to address part 1) where the script deletion timer is too short.
Bug 36080 will address part 2) where the BOM checking is done.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list