chakra-core / chakra-core/ChakraCore
Allow for user-defined blacklists so JIT is not attempted on specific functions
- Dominant language
- JavaScript
- Stars
- 9.3k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
In "Test" builds of ChakraCore, we can see that with specific frameworks and libraries there are higher incidences of functions that eventually get JIT compiled to native code, but then get un-JITd.
I'd like to be able to have a Test build of ChakraCore output some JSON that I can feed into a Release build that lists functions to blacklist so cycles and memory are not spent JIT compiling code that will be thrown away. (My app CI could even compare the generated JSON file with the one that's checked in to make sure the blacklist gets updated when JS packages or ChakraCore are improved.)
It's possible that are improvements to be made to ChakraCore's heuristics on both judging what to JIT and how to keep JIT'd functions from falling back to interpreter. Even so, I'd like to be able to squeeze more performance out of an existing ChakraCore release while waiting for those improvements.
I drove some implementation of this at a previous company that was using JSC and v8 on ARM SoC for complex pure JS user interfaces that needed to have fast launch times *and* hit 60fps. This was a low-risk change to our local fork on those runtimes that had a measurable impact on both of those user-visible performance metrics.
Contributor guide
Assessment
This issue has not been assessed yet.