I have been working on a POC that centers on Javascript and I chose chromium as the driver and development base.
in this POC many small scripts may be executed in different contexts and/or the same context multiple times depending on input data (scripts may invoke other scripts indirectly through object methods). The same script set may be reexecuted multiple times indirectly depending on user input cues. In my initial implementation I reuse the object from ScriptData::PreCompile to facilitate faster compilation when required. This design functions and performs quite well. I have updated my code base from chromium version 21525 of mid-July to version 35622 to take advantage of the "new context-independent script objects that can be run in any number of contexts" as described in Christian Plesner's announcement from August 17 New v8 API functions http://groups.google.com/group/v8-users/index/browse_frm/thread/d31782722fe19f2c?_done=%2Fgroup%2Fv8-users%2Fbrowse_frm%2Fthread%2Fd31782722fe19f2c%3Fpli%3D1%26&pli=1. With this new functionality in place I refactored the codebase discontinuing use of ScriptData and instead reusing Scripts as described in the announcement. I notice that version 35622 executes significantly slower than the prior version. I'm profiling a slow degradation in performance with each passing reexecution of the same code. i.e. reexecuting the same Script instance set in memory. correspondingly, the executable memory usage exhibits a slow continuous increase. upon reloading the JS source the memory usage resets and the issue repeats. using my prior code base that creates new Scripts with ScriptData with each invocation, I am experiencing the same slow degradation in performance with the newer release. my version 21525 implementation does not exhibit this behavior. has anyone else noticed this? can you speculate on the source of this behavior? please tell me what more info you may need to make an assessment. -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
