diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-09-26 14:32:37 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2014-09-26 19:54:39 -0700 |
commit | 76433275dbe39e5ced1c223b006d1b900b1937f6 (patch) | |
tree | a72c101defa86ceff8b633cf2eaa606c87f783eb /runtime/entrypoints/quick | |
parent | 88adf36315237947d3a5d10b28fdf8b9da7794a4 (diff) | |
download | art-76433275dbe39e5ced1c223b006d1b900b1937f6.zip art-76433275dbe39e5ced1c223b006d1b900b1937f6.tar.gz art-76433275dbe39e5ced1c223b006d1b900b1937f6.tar.bz2 |
Optimize get/set reflection performance
Speedups mostly from reducing how often access checks are needed,
and adding more inlining, and adding templates.
Field_getInt from ~850ns -> 350ns.
Field_setInt from ~900ns -> 370ns.
Bug: 14063288
(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)
Change-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8
Diffstat (limited to 'runtime/entrypoints/quick')
-rw-r--r-- | runtime/entrypoints/quick/callee_save_frame.h | 2 | ||||
-rw-r--r-- | runtime/entrypoints/quick/quick_jni_entrypoints.cc | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/runtime/entrypoints/quick/callee_save_frame.h b/runtime/entrypoints/quick/callee_save_frame.h index e573d6d..e728f7d 100644 --- a/runtime/entrypoints/quick/callee_save_frame.h +++ b/runtime/entrypoints/quick/callee_save_frame.h @@ -18,7 +18,9 @@ #define ART_RUNTIME_ENTRYPOINTS_QUICK_CALLEE_SAVE_FRAME_H_ #include "base/mutex.h" +#include "gc_root-inl.h" #include "instruction_set.h" +#include "runtime-inl.h" #include "thread-inl.h" // Specific frame size code is in architecture-specific files. We include this to compile-time diff --git a/runtime/entrypoints/quick/quick_jni_entrypoints.cc b/runtime/entrypoints/quick/quick_jni_entrypoints.cc index 87f04bb..c239535 100644 --- a/runtime/entrypoints/quick/quick_jni_entrypoints.cc +++ b/runtime/entrypoints/quick/quick_jni_entrypoints.cc @@ -14,6 +14,7 @@ * limitations under the License. */ +#include "entrypoints/entrypoint_utils-inl.h" #include "mirror/object-inl.h" #include "thread-inl.h" #include "verify_object-inl.h" |