Bug 186193

Summary: [JSC] NewArrayBuffer should have non-CoW mode
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: fpizlo, keith_miller, mark.lam, msaboff, sbarati, ysuzuki
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 186724    

Description Yusuke Suzuki 2018-06-01 06:33:10 PDT
In some program, array created by new_array_buffer is not immutable (I think Kraken/crypto-aes and SixSpeed spread-literal.es5 are).
But ArrayifyToStructure's array copying is really slow compared to non CoW array creation in NewArrayBuffer.
I think we should have non-CoW mode for NewArrayBuffer / new_array_buffer. ArrayAllocationProfile should carefully profile the use of resulted array, and tell us whether using CoW mode is profitable.
Comment 1 Saam Barati 2018-06-01 08:55:24 PDT
Why is arrayify to structure slow?
Comment 2 Keith Miller 2018-06-01 14:10:27 PDT
It seems like if this is a problem the fix is to make Arrayification faster. Since the total amount of work duplicating the butterfly should be the same either way, I don't see any obvious reason to eagerly copy.