summaryrefslogtreecommitdiffstats
path: root/runtime/utils_test.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-09-26 14:32:37 -0700
committerMathieu Chartier <mathieuc@google.com>2014-09-26 19:54:39 -0700
commit76433275dbe39e5ced1c223b006d1b900b1937f6 (patch)
treea72c101defa86ceff8b633cf2eaa606c87f783eb /runtime/utils_test.cc
parent88adf36315237947d3a5d10b28fdf8b9da7794a4 (diff)
downloadart-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.cc12
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"));