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/utils_test.cc | |
parent | 88adf36315237947d3a5d10b28fdf8b9da7794a4 (diff) | |
download | art-76433275dbe39e5ced1c223b006d1b900b1937f6.tar.gz art-76433275dbe39e5ced1c223b006d1b900b1937f6.tar.bz2 art-76433275dbe39e5ced1c223b006d1b900b1937f6.zip |
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/utils_test.cc')
-rw-r--r-- | runtime/utils_test.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/runtime/utils_test.cc b/runtime/utils_test.cc index d6c90e1d45..1b2c3eec05 100644 --- a/runtime/utils_test.cc +++ b/runtime/utils_test.cc @@ -44,6 +44,18 @@ TEST_F(UtilsTest, PrettyDescriptor_ScalarReferences) { EXPECT_EQ("java.lang.String", PrettyDescriptor("Ljava/lang/String;")); } +TEST_F(UtilsTest, PrettyDescriptor_Primitive) { + EXPECT_EQ("boolean", PrettyDescriptor(Primitive::kPrimBoolean)); + EXPECT_EQ("byte", PrettyDescriptor(Primitive::kPrimByte)); + EXPECT_EQ("char", PrettyDescriptor(Primitive::kPrimChar)); + EXPECT_EQ("short", PrettyDescriptor(Primitive::kPrimShort)); + EXPECT_EQ("int", PrettyDescriptor(Primitive::kPrimInt)); + EXPECT_EQ("float", PrettyDescriptor(Primitive::kPrimFloat)); + EXPECT_EQ("long", PrettyDescriptor(Primitive::kPrimLong)); + EXPECT_EQ("double", PrettyDescriptor(Primitive::kPrimDouble)); + EXPECT_EQ("void", PrettyDescriptor(Primitive::kPrimVoid)); +} + TEST_F(UtilsTest, PrettyDescriptor_PrimitiveArrays) { EXPECT_EQ("boolean[]", PrettyDescriptor("[Z")); EXPECT_EQ("boolean[][]", PrettyDescriptor("[[Z")); |