Hi friends, it’s been a while. At some point in the past 2 years, I had communicated an intent to do some work on improving Proxy [[GetOwnPropertyDescriptor]] performance, and mentioned in passing a plan to implement a CSA builtin in lieu of crossing into C++, then back into JS, and then in the case of a customer application, virtually 100% of the time, back into another Proxy operation and back into JS once again, so during startup, this overhead adds up a lot.
So, at this point, I’d like to try to upstream a change to avoid a lot of this overhead (and introduce a little bit of new overhead, more about that in a moment). I’ve prepared a design document at https://docs.google.com/document/d/1ii17O_rioObCrxv_5kvy-SxPc7I2R84CsYV3S1wzWY8/edit?usp=sharing which covers it, but it’s pretty straight forward: - Proxy [[GetOwnPropertyDescriptor]] happens entirely within JS/codestub linkage, without jumping into C++ - Dispatching to different flavours of [[GetOwnPropertyDescriptor]] is done in a new dispatcher codestub, which is slightly more overhead in the common cases — however this doesn’t seem to make a difference on the industry standard benchmarks we’ve tried (admittedly, just Jetstream 2.0, which doesn’t actually use a lot of GOPD, as far as I can tell) This change would increase code size and complexity, and not necessarily result in significant benefits for most applications, but this is a big deal for stuff making significant use of the membrane design pattern. -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/E9611E07-4D9C-496B-AE4C-1D3C540A0035%40igalia.com.
