We seem to free ExecutablePool memory synchronously when discarding jitcode during garbage collection. This seems to invoke a lot of mprotect() calls when discarding jitcode, which should be avoided during GCs to save time. We should push as much of the jitcode free logic as possible to deferred (preferably off-main-thread) free code.
Sometimes we do last-ditch GCs to free up executable code, see eg bug 1356631 and bug 1338217 for background. In that case, freeing doesn't have to happen during GC but it must happen synchronously thereafter.
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.