Ignore:
Timestamp:
Jan 5, 2009, 3:57:09 PM (16 years ago)
Author:
[email protected]
Message:

CanvasPixelArray performance is too slow
<https://bugs.webkit.org/show_bug.cgi?id=23123>

Reviewed by Gavin Barraclough

JavaScriptCore:
The fix to this is to devirtualise get and put in a manner similar to
JSString and JSArray. To do this I've added a ByteArray implementation
and JSByteArray wrapper to JSC. We can then do vptr comparisons to
devirtualise the calls.

This devirtualisation improves performance by 1.5-2x in my somewhat ad
hoc tests.

WebCore:
Remove the WebCore CanvasPixelArray implementation and replace
CPA usage with JSC::ByteArray. Replace the JSCanvasPixelArray
wrapper with an explicitly instantiated JSByteArray put on the
JSImageData object as an ordinary ReadOnly, DontDelete property.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.exp

    r39337 r39625  
    100100__ZN3JSC10throwErrorEPNS_9ExecStateENS_9ErrorTypeEPKc
    101101__ZN3JSC10throwErrorEPNS_9ExecStateENS_9ErrorTypeERKNS_7UStringE
     102__ZN3JSC11JSByteArray15createStructureEPNS_7JSValueE
     103__ZN3JSC11JSByteArrayC1EPNS_9ExecStateEN3WTF10PassRefPtrINS_9StructureEEEPNS_9ByteArrayEPKNS_9ClassInfoE
    102104__ZN3JSC11JSImmediate12nonInlineNaNEv
    103105__ZN3JSC11JSImmediate8toObjectEPNS_7JSValueEPNS_9ExecStateE
     
    247249__ZN3JSC8evaluateEPNS_9ExecStateERNS_10ScopeChainERKNS_10SourceCodeEPNS_7JSValueE
    248250__ZN3JSC8jsStringEPNS_12JSGlobalDataERKNS_7UStringE
     251__ZN3JSC9ByteArray6createEm
    249252__ZN3JSC9CodeBlockD1Ev
    250253__ZN3JSC9CodeBlockD2Ev
Note: See TracChangeset for help on using the changeset viewer.