Commit e9f61035 authored by Alex Light's avatar Alex Light
Browse files

Prevent the JIT from loading classes in debuggable mode

In debuggable mode the timing and placement of class loads is
observable. This causes deopts to be placed in situations where a
class would be loaded by the JIT.

This has negligible impact on performance of compiled code, causing
only a handful of classes to be not loaded.

For example with the it.mvilla.android.fenix2 application of the
~13000 classes loaded the jit was responsible for 19 of them.

Since the jit is only responsible for a small number of class loads
and for the class not to have been loaded by the interpreter the path
must be cold anyway there is no performance impact on standard paths.

Test: ./test.py --host
Test: ./test/testrunner/testrunner.py --with-agent=libjitloadd.so=fatal --host
Test: Attach libjitload.so to running processes and examine jit-load
      counts.

Bug: 70838465
Bug: 73255278
Bug: 112074977
Bug: 116517081

Change-Id: I030bc8116345af506e83ba78427a7fbda7a7b386
parent bb68fda1
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment