summaryrefslogtreecommitdiffstats
path: root/benchmark
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2016-11-16 15:40:12 +0000
committerVladimir Marko <vmarko@google.com>2016-11-17 11:30:13 +0000
commitfa1b78f19e689d8fc98e2d5b5ce9746e589fb88b (patch)
treec2a3f73514597ba05856f9cc33e2a97739fa1248 /benchmark
parentecd8300b94938f22fa3988c58187acce9f091da8 (diff)
downloadandroid_art-fa1b78f19e689d8fc98e2d5b5ce9746e589fb88b.tar.gz
android_art-fa1b78f19e689d8fc98e2d5b5ce9746e589fb88b.tar.bz2
android_art-fa1b78f19e689d8fc98e2d5b5ce9746e589fb88b.zip
Add const-class benchmark.
Also fix indentation in const-string benchmark. Test: vogar --benchmark art/benchmark/const-class/src/ConstClassBenchmark.java Test: vogar --benchmark art/benchmark/const-string/src/ConstStringBenchmark.java Bug: 30627598 Change-Id: I04ca9514f6e647640e2c0d9d65fdc4ace652927a
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/const-class/info.txt1
-rw-r--r--benchmark/const-class/src/ConstClassBenchmark.java1071
-rw-r--r--benchmark/const-string/src/ConstStringBenchmark.java19
3 files changed, 1082 insertions, 9 deletions
diff --git a/benchmark/const-class/info.txt b/benchmark/const-class/info.txt
new file mode 100644
index 0000000000..ed0b827ab2
--- /dev/null
+++ b/benchmark/const-class/info.txt
@@ -0,0 +1 @@
+Benchmarks for repeating const-class instructions in a loop.
diff --git a/benchmark/const-class/src/ConstClassBenchmark.java b/benchmark/const-class/src/ConstClassBenchmark.java
new file mode 100644
index 0000000000..d45b49f272
--- /dev/null
+++ b/benchmark/const-class/src/ConstClassBenchmark.java
@@ -0,0 +1,1071 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class ConstClassBenchmark {
+ // Define 1025 classes with consecutive type indexes in the dex file.
+ // The tests below rely on the knowledge that ART uses the low 10 bits
+ // of the type index as the hash into DexCache types array.
+ // Note: n == n + 1024 (mod 2^10), n + 1 != n + 1023 (mod 2^10).
+ public static class TestClass_0000 {}
+ public static class TestClass_0001 {}
+ public static class TestClass_0002 {}
+ public static class TestClass_0003 {}
+ public static class TestClass_0004 {}
+ public static class TestClass_0005 {}
+ public static class TestClass_0006 {}
+ public static class TestClass_0007 {}
+ public static class TestClass_0008 {}
+ public static class TestClass_0009 {}
+ public static class TestClass_0010 {}
+ public static class TestClass_0011 {}
+ public static class TestClass_0012 {}
+ public static class TestClass_0013 {}
+ public static class TestClass_0014 {}
+ public static class TestClass_0015 {}
+ public static class TestClass_0016 {}
+ public static class TestClass_0017 {}
+ public static class TestClass_0018 {}
+ public static class TestClass_0019 {}
+ public static class TestClass_0020 {}
+ public static class TestClass_0021 {}
+ public static class TestClass_0022 {}
+ public static class TestClass_0023 {}
+ public static class TestClass_0024 {}
+ public static class TestClass_0025 {}
+ public static class TestClass_0026 {}
+ public static class TestClass_0027 {}
+ public static class TestClass_0028 {}
+ public static class TestClass_0029 {}
+ public static class TestClass_0030 {}
+ public static class TestClass_0031 {}
+ public static class TestClass_0032 {}
+ public static class TestClass_0033 {}
+ public static class TestClass_0034 {}
+ public static class TestClass_0035 {}
+ public static class TestClass_0036 {}
+ public static class TestClass_0037 {}
+ public static class TestClass_0038 {}
+ public static class TestClass_0039 {}
+ public static class TestClass_0040 {}
+ public static class TestClass_0041 {}
+ public static class TestClass_0042 {}
+ public static class TestClass_0043 {}
+ public static class TestClass_0044 {}
+ public static class TestClass_0045 {}
+ public static class TestClass_0046 {}
+ public static class TestClass_0047 {}
+ public static class TestClass_0048 {}
+ public static class TestClass_0049 {}
+ public static class TestClass_0050 {}
+ public static class TestClass_0051 {}
+ public static class TestClass_0052 {}
+ public static class TestClass_0053 {}
+ public static class TestClass_0054 {}
+ public static class TestClass_0055 {}
+ public static class TestClass_0056 {}
+ public static class TestClass_0057 {}
+ public static class TestClass_0058 {}
+ public static class TestClass_0059 {}
+ public static class TestClass_0060 {}
+ public static class TestClass_0061 {}
+ public static class TestClass_0062 {}
+ public static class TestClass_0063 {}
+ public static class TestClass_0064 {}
+ public static class TestClass_0065 {}
+ public static class TestClass_0066 {}
+ public static class TestClass_0067 {}
+ public static class TestClass_0068 {}
+ public static class TestClass_0069 {}
+ public static class TestClass_0070 {}
+ public static class TestClass_0071 {}
+ public static class TestClass_0072 {}
+ public static class TestClass_0073 {}
+ public static class TestClass_0074 {}
+ public static class TestClass_0075 {}
+ public static class TestClass_0076 {}
+ public static class TestClass_0077 {}
+ public static class TestClass_0078 {}
+ public static class TestClass_0079 {}
+ public static class TestClass_0080 {}
+ public static class TestClass_0081 {}
+ public static class TestClass_0082 {}
+ public static class TestClass_0083 {}
+ public static class TestClass_0084 {}
+ public static class TestClass_0085 {}
+ public static class TestClass_0086 {}
+ public static class TestClass_0087 {}
+ public static class TestClass_0088 {}
+ public static class TestClass_0089 {}
+ public static class TestClass_0090 {}
+ public static class TestClass_0091 {}
+ public static class TestClass_0092 {}
+ public static class TestClass_0093 {}
+ public static class TestClass_0094 {}
+ public static class TestClass_0095 {}
+ public static class TestClass_0096 {}
+ public static class TestClass_0097 {}
+ public static class TestClass_0098 {}
+ public static class TestClass_0099 {}
+ public static class TestClass_0100 {}
+ public static class TestClass_0101 {}
+ public static class TestClass_0102 {}
+ public static class TestClass_0103 {}
+ public static class TestClass_0104 {}
+ public static class TestClass_0105 {}
+ public static class TestClass_0106 {}
+ public static class TestClass_0107 {}
+ public static class TestClass_0108 {}
+ public static class TestClass_0109 {}
+ public static class TestClass_0110 {}
+ public static class TestClass_0111 {}
+ public static class TestClass_0112 {}
+ public static class TestClass_0113 {}
+ public static class TestClass_0114 {}
+ public static class TestClass_0115 {}
+ public static class TestClass_0116 {}
+ public static class TestClass_0117 {}
+ public static class TestClass_0118 {}
+ public static class TestClass_0119 {}
+ public static class TestClass_0120 {}
+ public static class TestClass_0121 {}
+ public static class TestClass_0122 {}
+ public static class TestClass_0123 {}
+ public static class TestClass_0124 {}
+ public static class TestClass_0125 {}
+ public static class TestClass_0126 {}
+ public static class TestClass_0127 {}
+ public static class TestClass_0128 {}
+ public static class TestClass_0129 {}
+ public static class TestClass_0130 {}
+ public static class TestClass_0131 {}
+ public static class TestClass_0132 {}
+ public static class TestClass_0133 {}
+ public static class TestClass_0134 {}
+ public static class TestClass_0135 {}
+ public static class TestClass_0136 {}
+ public static class TestClass_0137 {}
+ public static class TestClass_0138 {}
+ public static class TestClass_0139 {}
+ public static class TestClass_0140 {}
+ public static class TestClass_0141 {}
+ public static class TestClass_0142 {}
+ public static class TestClass_0143 {}
+ public static class TestClass_0144 {}
+ public static class TestClass_0145 {}
+ public static class TestClass_0146 {}
+ public static class TestClass_0147 {}
+ public static class TestClass_0148 {}
+ public static class TestClass_0149 {}
+ public static class TestClass_0150 {}
+ public static class TestClass_0151 {}
+ public static class TestClass_0152 {}
+ public static class TestClass_0153 {}
+ public static class TestClass_0154 {}
+ public static class TestClass_0155 {}
+ public static class TestClass_0156 {}
+ public static class TestClass_0157 {}
+ public static class TestClass_0158 {}
+ public static class TestClass_0159 {}
+ public static class TestClass_0160 {}
+ public static class TestClass_0161 {}
+ public static class TestClass_0162 {}
+ public static class TestClass_0163 {}
+ public static class TestClass_0164 {}
+ public static class TestClass_0165 {}
+ public static class TestClass_0166 {}
+ public static class TestClass_0167 {}
+ public static class TestClass_0168 {}
+ public static class TestClass_0169 {}
+ public static class TestClass_0170 {}
+ public static class TestClass_0171 {}
+ public static class TestClass_0172 {}
+ public static class TestClass_0173 {}
+ public static class TestClass_0174 {}
+ public static class TestClass_0175 {}
+ public static class TestClass_0176 {}
+ public static class TestClass_0177 {}
+ public static class TestClass_0178 {}
+ public static class TestClass_0179 {}
+ public static class TestClass_0180 {}
+ public static class TestClass_0181 {}
+ public static class TestClass_0182 {}
+ public static class TestClass_0183 {}
+ public static class TestClass_0184 {}
+ public static class TestClass_0185 {}
+ public static class TestClass_0186 {}
+ public static class TestClass_0187 {}
+ public static class TestClass_0188 {}
+ public static class TestClass_0189 {}
+ public static class TestClass_0190 {}
+ public static class TestClass_0191 {}
+ public static class TestClass_0192 {}
+ public static class TestClass_0193 {}
+ public static class TestClass_0194 {}
+ public static class TestClass_0195 {}
+ public static class TestClass_0196 {}
+ public static class TestClass_0197 {}
+ public static class TestClass_0198 {}
+ public static class TestClass_0199 {}
+ public static class TestClass_0200 {}
+ public static class TestClass_0201 {}
+ public static class TestClass_0202 {}
+ public static class TestClass_0203 {}
+ public static class TestClass_0204 {}
+ public static class TestClass_0205 {}
+ public static class TestClass_0206 {}
+ public static class TestClass_0207 {}
+ public static class TestClass_0208 {}
+ public static class TestClass_0209 {}
+ public static class TestClass_0210 {}
+ public static class TestClass_0211 {}
+ public static class TestClass_0212 {}
+ public static class TestClass_0213 {}
+ public static class TestClass_0214 {}
+ public static class TestClass_0215 {}
+ public static class TestClass_0216 {}
+ public static class TestClass_0217 {}
+ public static class TestClass_0218 {}
+ public static class TestClass_0219 {}
+ public static class TestClass_0220 {}
+ public static class TestClass_0221 {}
+ public static class TestClass_0222 {}
+ public static class TestClass_0223 {}
+ public static class TestClass_0224 {}
+ public static class TestClass_0225 {}
+ public static class TestClass_0226 {}
+ public static class TestClass_0227 {}
+ public static class TestClass_0228 {}
+ public static class TestClass_0229 {}
+ public static class TestClass_0230 {}
+ public static class TestClass_0231 {}
+ public static class TestClass_0232 {}
+ public static class TestClass_0233 {}
+ public static class TestClass_0234 {}
+ public static class TestClass_0235 {}
+ public static class TestClass_0236 {}
+ public static class TestClass_0237 {}
+ public static class TestClass_0238 {}
+ public static class TestClass_0239 {}
+ public static class TestClass_0240 {}
+ public static class TestClass_0241 {}
+ public static class TestClass_0242 {}
+ public static class TestClass_0243 {}
+ public static class TestClass_0244 {}
+ public static class TestClass_0245 {}
+ public static class TestClass_0246 {}
+ public static class TestClass_0247 {}
+ public static class TestClass_0248 {}
+ public static class TestClass_0249 {}
+ public static class TestClass_0250 {}
+ public static class TestClass_0251 {}
+ public static class TestClass_0252 {}
+ public static class TestClass_0253 {}
+ public static class TestClass_0254 {}
+ public static class TestClass_0255 {}
+ public static class TestClass_0256 {}
+ public static class TestClass_0257 {}
+ public static class TestClass_0258 {}
+ public static class TestClass_0259 {}
+ public static class TestClass_0260 {}
+ public static class TestClass_0261 {}
+ public static class TestClass_0262 {}
+ public static class TestClass_0263 {}
+ public static class TestClass_0264 {}
+ public static class TestClass_0265 {}
+ public static class TestClass_0266 {}
+ public static class TestClass_0267 {}
+ public static class TestClass_0268 {}
+ public static class TestClass_0269 {}
+ public static class TestClass_0270 {}
+ public static class TestClass_0271 {}
+ public static class TestClass_0272 {}
+ public static class TestClass_0273 {}
+ public static class TestClass_0274 {}
+ public static class TestClass_0275 {}
+ public static class TestClass_0276 {}
+ public static class TestClass_0277 {}
+ public static class TestClass_0278 {}
+ public static class TestClass_0279 {}
+ public static class TestClass_0280 {}
+ public static class TestClass_0281 {}
+ public static class TestClass_0282 {}
+ public static class TestClass_0283 {}
+ public static class TestClass_0284 {}
+ public static class TestClass_0285 {}
+ public static class TestClass_0286 {}
+ public static class TestClass_0287 {}
+ public static class TestClass_0288 {}
+ public static class TestClass_0289 {}
+ public static class TestClass_0290 {}
+ public static class TestClass_0291 {}
+ public static class TestClass_0292 {}
+ public static class TestClass_0293 {}
+ public static class TestClass_0294 {}
+ public static class TestClass_0295 {}
+ public static class TestClass_0296 {}
+ public static class TestClass_0297 {}
+ public static class TestClass_0298 {}
+ public static class TestClass_0299 {}
+ public static class TestClass_0300 {}
+ public static class TestClass_0301 {}
+ public static class TestClass_0302 {}
+ public static class TestClass_0303 {}
+ public static class TestClass_0304 {}
+ public static class TestClass_0305 {}
+ public static class TestClass_0306 {}
+ public static class TestClass_0307 {}
+ public static class TestClass_0308 {}
+ public static class TestClass_0309 {}
+ public static class TestClass_0310 {}
+ public static class TestClass_0311 {}
+ public static class TestClass_0312 {}
+ public static class TestClass_0313 {}
+ public static class TestClass_0314 {}
+ public static class TestClass_0315 {}
+ public static class TestClass_0316 {}
+ public static class TestClass_0317 {}
+ public static class TestClass_0318 {}
+ public static class TestClass_0319 {}
+ public static class TestClass_0320 {}
+ public static class TestClass_0321 {}
+ public static class TestClass_0322 {}
+ public static class TestClass_0323 {}
+ public static class TestClass_0324 {}
+ public static class TestClass_0325 {}
+ public static class TestClass_0326 {}
+ public static class TestClass_0327 {}
+ public static class TestClass_0328 {}
+ public static class TestClass_0329 {}
+ public static class TestClass_0330 {}
+ public static class TestClass_0331 {}
+ public static class TestClass_0332 {}
+ public static class TestClass_0333 {}
+ public static class TestClass_0334 {}
+ public static class TestClass_0335 {}
+ public static class TestClass_0336 {}
+ public static class TestClass_0337 {}
+ public static class TestClass_0338 {}
+ public static class TestClass_0339 {}
+ public static class TestClass_0340 {}
+ public static class TestClass_0341 {}
+ public static class TestClass_0342 {}
+ public static class TestClass_0343 {}
+ public static class TestClass_0344 {}
+ public static class TestClass_0345 {}
+ public static class TestClass_0346 {}
+ public static class TestClass_0347 {}
+ public static class TestClass_0348 {}
+ public static class TestClass_0349 {}
+ public static class TestClass_0350 {}
+ public static class TestClass_0351 {}
+ public static class TestClass_0352 {}
+ public static class TestClass_0353 {}
+ public static class TestClass_0354 {}
+ public static class TestClass_0355 {}
+ public static class TestClass_0356 {}
+ public static class TestClass_0357 {}
+ public static class TestClass_0358 {}
+ public static class TestClass_0359 {}
+ public static class TestClass_0360 {}
+ public static class TestClass_0361 {}
+ public static class TestClass_0362 {}
+ public static class TestClass_0363 {}
+ public static class TestClass_0364 {}
+ public static class TestClass_0365 {}
+ public static class TestClass_0366 {}
+ public static class TestClass_0367 {}
+ public static class TestClass_0368 {}
+ public static class TestClass_0369 {}
+ public static class TestClass_0370 {}
+ public static class TestClass_0371 {}
+ public static class TestClass_0372 {}
+ public static class TestClass_0373 {}
+ public static class TestClass_0374 {}
+ public static class TestClass_0375 {}
+ public static class TestClass_0376 {}
+ public static class TestClass_0377 {}
+ public static class TestClass_0378 {}
+ public static class TestClass_0379 {}
+ public static class TestClass_0380 {}
+ public static class TestClass_0381 {}
+ public static class TestClass_0382 {}
+ public static class TestClass_0383 {}
+ public static class TestClass_0384 {}
+ public static class TestClass_0385 {}
+ public static class TestClass_0386 {}
+ public static class TestClass_0387 {}
+ public static class TestClass_0388 {}
+ public static class TestClass_0389 {}
+ public static class TestClass_0390 {}
+ public static class TestClass_0391 {}
+ public static class TestClass_0392 {}
+ public static class TestClass_0393 {}
+ public static class TestClass_0394 {}
+ public static class TestClass_0395 {}
+ public static class TestClass_0396 {}
+ public static class TestClass_0397 {}
+ public static class TestClass_0398 {}
+ public static class TestClass_0399 {}
+ public static class TestClass_0400 {}
+ public static class TestClass_0401 {}
+ public static class TestClass_0402 {}
+ public static class TestClass_0403 {}
+ public static class TestClass_0404 {}
+ public static class TestClass_0405 {}
+ public static class TestClass_0406 {}
+ public static class TestClass_0407 {}
+ public static class TestClass_0408 {}
+ public static class TestClass_0409 {}
+ public static class TestClass_0410 {}
+ public static class TestClass_0411 {}
+ public static class TestClass_0412 {}
+ public static class TestClass_0413 {}
+ public static class TestClass_0414 {}
+ public static class TestClass_0415 {}
+ public static class TestClass_0416 {}
+ public static class TestClass_0417 {}
+ public static class TestClass_0418 {}
+ public static class TestClass_0419 {}
+ public static class TestClass_0420 {}
+ public static class TestClass_0421 {}
+ public static class TestClass_0422 {}
+ public static class TestClass_0423 {}
+ public static class TestClass_0424 {}
+ public static class TestClass_0425 {}
+ public static class TestClass_0426 {}
+ public static class TestClass_0427 {}
+ public static class TestClass_0428 {}
+ public static class TestClass_0429 {}
+ public static class TestClass_0430 {}
+ public static class TestClass_0431 {}
+ public static class TestClass_0432 {}
+ public static class TestClass_0433 {}
+ public static class TestClass_0434 {}
+ public static class TestClass_0435 {}
+ public static class TestClass_0436 {}
+ public static class TestClass_0437 {}
+ public static class TestClass_0438 {}
+ public static class TestClass_0439 {}
+ public static class TestClass_0440 {}
+ public static class TestClass_0441 {}
+ public static class TestClass_0442 {}
+ public static class TestClass_0443 {}
+ public static class TestClass_0444 {}
+ public static class TestClass_0445 {}
+ public static class TestClass_0446 {}
+ public static class TestClass_0447 {}
+ public static class TestClass_0448 {}
+ public static class TestClass_0449 {}
+ public static class TestClass_0450 {}
+ public static class TestClass_0451 {}
+ public static class TestClass_0452 {}
+ public static class TestClass_0453 {}
+ public static class TestClass_0454 {}
+ public static class TestClass_0455 {}
+ public static class TestClass_0456 {}
+ public static class TestClass_0457 {}
+ public static class TestClass_0458 {}
+ public static class TestClass_0459 {}
+ public static class TestClass_0460 {}
+ public static class TestClass_0461 {}
+ public static class TestClass_0462 {}
+ public static class TestClass_0463 {}
+ public static class TestClass_0464 {}
+ public static class TestClass_0465 {}
+ public static class TestClass_0466 {}
+ public static class TestClass_0467 {}
+ public static class TestClass_0468 {}
+ public static class TestClass_0469 {}
+ public static class TestClass_0470 {}
+ public static class TestClass_0471 {}
+ public static class TestClass_0472 {}
+ public static class TestClass_0473 {}
+ public static class TestClass_0474 {}
+ public static class TestClass_0475 {}
+ public static class TestClass_0476 {}
+ public static class TestClass_0477 {}
+ public static class TestClass_0478 {}
+ public static class TestClass_0479 {}
+ public static class TestClass_0480 {}
+ public static class TestClass_0481 {}
+ public static class TestClass_0482 {}
+ public static class TestClass_0483 {}
+ public static class TestClass_0484 {}
+ public static class TestClass_0485 {}
+ public static class TestClass_0486 {}
+ public static class TestClass_0487 {}
+ public static class TestClass_0488 {}
+ public static class TestClass_0489 {}
+ public static class TestClass_0490 {}
+ public static class TestClass_0491 {}
+ public static class TestClass_0492 {}
+ public static class TestClass_0493 {}
+ public static class TestClass_0494 {}
+ public static class TestClass_0495 {}
+ public static class TestClass_0496 {}
+ public static class TestClass_0497 {}
+ public static class TestClass_0498 {}
+ public static class TestClass_0499 {}
+ public static class TestClass_0500 {}
+ public static class TestClass_0501 {}
+ public static class TestClass_0502 {}
+ public static class TestClass_0503 {}
+ public static class TestClass_0504 {}
+ public static class TestClass_0505 {}
+ public static class TestClass_0506 {}
+ public static class TestClass_0507 {}
+ public static class TestClass_0508 {}
+ public static class TestClass_0509 {}
+ public static class TestClass_0510 {}
+ public static class TestClass_0511 {}
+ public static class TestClass_0512 {}
+ public static class TestClass_0513 {}
+ public static class TestClass_0514 {}
+ public static class TestClass_0515 {}
+ public static class TestClass_0516 {}
+ public static class TestClass_0517 {}
+ public static class TestClass_0518 {}
+ public static class TestClass_0519 {}
+ public static class TestClass_0520 {}
+ public static class TestClass_0521 {}
+ public static class TestClass_0522 {}
+ public static class TestClass_0523 {}
+ public static class TestClass_0524 {}
+ public static class TestClass_0525 {}
+ public static class TestClass_0526 {}
+ public static class TestClass_0527 {}
+ public static class TestClass_0528 {}
+ public static class TestClass_0529 {}
+ public static class TestClass_0530 {}
+ public static class TestClass_0531 {}
+ public static class TestClass_0532 {}
+ public static class TestClass_0533 {}
+ public static class TestClass_0534 {}
+ public static class TestClass_0535 {}
+ public static class TestClass_0536 {}
+ public static class TestClass_0537 {}
+ public static class TestClass_0538 {}
+ public static class TestClass_0539 {}
+ public static class TestClass_0540 {}
+ public static class TestClass_0541 {}
+ public static class TestClass_0542 {}
+ public static class TestClass_0543 {}
+ public static class TestClass_0544 {}
+ public static class TestClass_0545 {}
+ public static class TestClass_0546 {}
+ public static class TestClass_0547 {}
+ public static class TestClass_0548 {}
+ public static class TestClass_0549 {}
+ public static class TestClass_0550 {}
+ public static class TestClass_0551 {}
+ public static class TestClass_0552 {}
+ public static class TestClass_0553 {}
+ public static class TestClass_0554 {}
+ public static class TestClass_0555 {}
+ public static class TestClass_0556 {}
+ public static class TestClass_0557 {}
+ public static class TestClass_0558 {}
+ public static class TestClass_0559 {}
+ public static class TestClass_0560 {}
+ public static class TestClass_0561 {}
+ public static class TestClass_0562 {}
+ public static class TestClass_0563 {}
+ public static class TestClass_0564 {}
+ public static class TestClass_0565 {}
+ public static class TestClass_0566 {}
+ public static class TestClass_0567 {}
+ public static class TestClass_0568 {}
+ public static class TestClass_0569 {}
+ public static class TestClass_0570 {}
+ public static class TestClass_0571 {}
+ public static class TestClass_0572 {}
+ public static class TestClass_0573 {}
+ public static class TestClass_0574 {}
+ public static class TestClass_0575 {}
+ public static class TestClass_0576 {}
+ public static class TestClass_0577 {}
+ public static class TestClass_0578 {}
+ public static class TestClass_0579 {}
+ public static class TestClass_0580 {}
+ public static class TestClass_0581 {}
+ public static class TestClass_0582 {}
+ public static class TestClass_0583 {}
+ public static class TestClass_0584 {}
+ public static class TestClass_0585 {}
+ public static class TestClass_0586 {}
+ public static class TestClass_0587 {}
+ public static class TestClass_0588 {}
+ public static class TestClass_0589 {}
+ public static class TestClass_0590 {}
+ public static class TestClass_0591 {}
+ public static class TestClass_0592 {}
+ public static class TestClass_0593 {}
+ public static class TestClass_0594 {}
+ public static class TestClass_0595 {}
+ public static class TestClass_0596 {}
+ public static class TestClass_0597 {}
+ public static class TestClass_0598 {}
+ public static class TestClass_0599 {}
+ public static class TestClass_0600 {}
+ public static class TestClass_0601 {}
+ public static class TestClass_0602 {}
+ public static class TestClass_0603 {}
+ public static class TestClass_0604 {}
+ public static class TestClass_0605 {}
+ public static class TestClass_0606 {}
+ public static class TestClass_0607 {}
+ public static class TestClass_0608 {}
+ public static class TestClass_0609 {}
+ public static class TestClass_0610 {}
+ public static class TestClass_0611 {}
+ public static class TestClass_0612 {}
+ public static class TestClass_0613 {}
+ public static class TestClass_0614 {}
+ public static class TestClass_0615 {}
+ public static class TestClass_0616 {}
+ public static class TestClass_0617 {}
+ public static class TestClass_0618 {}
+ public static class TestClass_0619 {}
+ public static class TestClass_0620 {}
+ public static class TestClass_0621 {}
+ public static class TestClass_0622 {}
+ public static class TestClass_0623 {}
+ public static class TestClass_0624 {}
+ public static class TestClass_0625 {}
+ public static class TestClass_0626 {}
+ public static class TestClass_0627 {}
+ public static class TestClass_0628 {}
+ public static class TestClass_0629 {}
+ public static class TestClass_0630 {}
+ public static class TestClass_0631 {}
+ public static class TestClass_0632 {}
+ public static class TestClass_0633 {}
+ public static class TestClass_0634 {}
+ public static class TestClass_0635 {}
+ public static class TestClass_0636 {}
+ public static class TestClass_0637 {}
+ public static class TestClass_0638 {}
+ public static class TestClass_0639 {}
+ public static class TestClass_0640 {}
+ public static class TestClass_0641 {}
+ public static class TestClass_0642 {}
+ public static class TestClass_0643 {}
+ public static class TestClass_0644 {}
+ public static class TestClass_0645 {}
+ public static class TestClass_0646 {}
+ public static class TestClass_0647 {}
+ public static class TestClass_0648 {}
+ public static class TestClass_0649 {}
+ public static class TestClass_0650 {}
+ public static class TestClass_0651 {}
+ public static class TestClass_0652 {}
+ public static class TestClass_0653 {}
+ public static class TestClass_0654 {}
+ public static class TestClass_0655 {}
+ public static class TestClass_0656 {}
+ public static class TestClass_0657 {}
+ public static class TestClass_0658 {}
+ public static class TestClass_0659 {}
+ public static class TestClass_0660 {}
+ public static class TestClass_0661 {}
+ public static class TestClass_0662 {}
+ public static class TestClass_0663 {}
+ public static class TestClass_0664 {}
+ public static class TestClass_0665 {}
+ public static class TestClass_0666 {}
+ public static class TestClass_0667 {}
+ public static class TestClass_0668 {}
+ public static class TestClass_0669 {}
+ public static class TestClass_0670 {}
+ public static class TestClass_0671 {}
+ public static class TestClass_0672 {}
+ public static class TestClass_0673 {}
+ public static class TestClass_0674 {}
+ public static class TestClass_0675 {}
+ public static class TestClass_0676 {}
+ public static class TestClass_0677 {}
+ public static class TestClass_0678 {}
+ public static class TestClass_0679 {}
+ public static class TestClass_0680 {}
+ public static class TestClass_0681 {}
+ public static class TestClass_0682 {}
+ public static class TestClass_0683 {}
+ public static class TestClass_0684 {}
+ public static class TestClass_0685 {}
+ public static class TestClass_0686 {}
+ public static class TestClass_0687 {}
+ public static class TestClass_0688 {}
+ public static class TestClass_0689 {}
+ public static class TestClass_0690 {}
+ public static class TestClass_0691 {}
+ public static class TestClass_0692 {}
+ public static class TestClass_0693 {}
+ public static class TestClass_0694 {}
+ public static class TestClass_0695 {}
+ public static class TestClass_0696 {}
+ public static class TestClass_0697 {}
+ public static class TestClass_0698 {}
+ public static class TestClass_0699 {}
+ public static class TestClass_0700 {}
+ public static class TestClass_0701 {}
+ public static class TestClass_0702 {}
+ public static class TestClass_0703 {}
+ public static class TestClass_0704 {}
+ public static class TestClass_0705 {}
+ public static class TestClass_0706 {}
+ public static class TestClass_0707 {}
+ public static class TestClass_0708 {}
+ public static class TestClass_0709 {}
+ public static class TestClass_0710 {}
+ public static class TestClass_0711 {}
+ public static class TestClass_0712 {}
+ public static class TestClass_0713 {}
+ public static class TestClass_0714 {}
+ public static class TestClass_0715 {}
+ public static class TestClass_0716 {}
+ public static class TestClass_0717 {}
+ public static class TestClass_0718 {}
+ public static class TestClass_0719 {}
+ public static class TestClass_0720 {}
+ public static class TestClass_0721 {}
+ public static class TestClass_0722 {}
+ public static class TestClass_0723 {}
+ public static class TestClass_0724 {}
+ public static class TestClass_0725 {}
+ public static class TestClass_0726 {}
+ public static class TestClass_0727 {}
+ public static class TestClass_0728 {}
+ public static class TestClass_0729 {}
+ public static class TestClass_0730 {}
+ public static class TestClass_0731 {}
+ public static class TestClass_0732 {}
+ public static class TestClass_0733 {}
+ public static class TestClass_0734 {}
+ public static class TestClass_0735 {}
+ public static class TestClass_0736 {}
+ public static class TestClass_0737 {}
+ public static class TestClass_0738 {}
+ public static class TestClass_0739 {}
+ public static class TestClass_0740 {}
+ public static class TestClass_0741 {}
+ public static class TestClass_0742 {}
+ public static class TestClass_0743 {}
+ public static class TestClass_0744 {}
+ public static class TestClass_0745 {}
+ public static class TestClass_0746 {}
+ public static class TestClass_0747 {}
+ public static class TestClass_0748 {}
+ public static class TestClass_0749 {}
+ public static class TestClass_0750 {}
+ public static class TestClass_0751 {}
+ public static class TestClass_0752 {}
+ public static class TestClass_0753 {}
+ public static class TestClass_0754 {}
+ public static class TestClass_0755 {}
+ public static class TestClass_0756 {}
+ public static class TestClass_0757 {}
+ public static class TestClass_0758 {}
+ public static class TestClass_0759 {}
+ public static class TestClass_0760 {}
+ public static class TestClass_0761 {}
+ public static class TestClass_0762 {}
+ public static class TestClass_0763 {}
+ public static class TestClass_0764 {}
+ public static class TestClass_0765 {}
+ public static class TestClass_0766 {}
+ public static class TestClass_0767 {}
+ public static class TestClass_0768 {}
+ public static class TestClass_0769 {}
+ public static class TestClass_0770 {}
+ public static class TestClass_0771 {}
+ public static class TestClass_0772 {}
+ public static class TestClass_0773 {}
+ public static class TestClass_0774 {}
+ public static class TestClass_0775 {}
+ public static class TestClass_0776 {}
+ public static class TestClass_0777 {}
+ public static class TestClass_0778 {}
+ public static class TestClass_0779 {}
+ public static class TestClass_0780 {}
+ public static class TestClass_0781 {}
+ public static class TestClass_0782 {}
+ public static class TestClass_0783 {}
+ public static class TestClass_0784 {}
+ public static class TestClass_0785 {}
+ public static class TestClass_0786 {}
+ public static class TestClass_0787 {}
+ public static class TestClass_0788 {}
+ public static class TestClass_0789 {}
+ public static class TestClass_0790 {}
+ public static class TestClass_0791 {}
+ public static class TestClass_0792 {}
+ public static class TestClass_0793 {}
+ public static class TestClass_0794 {}
+ public static class TestClass_0795 {}
+ public static class TestClass_0796 {}
+ public static class TestClass_0797 {}
+ public static class TestClass_0798 {}
+ public static class TestClass_0799 {}
+ public static class TestClass_0800 {}
+ public static class TestClass_0801 {}
+ public static class TestClass_0802 {}
+ public static class TestClass_0803 {}
+ public static class TestClass_0804 {}
+ public static class TestClass_0805 {}
+ public static class TestClass_0806 {}
+ public static class TestClass_0807 {}
+ public static class TestClass_0808 {}
+ public static class TestClass_0809 {}
+ public static class TestClass_0810 {}
+ public static class TestClass_0811 {}
+ public static class TestClass_0812 {}
+ public static class TestClass_0813 {}
+ public static class TestClass_0814 {}
+ public static class TestClass_0815 {}
+ public static class TestClass_0816 {}
+ public static class TestClass_0817 {}
+ public static class TestClass_0818 {}
+ public static class TestClass_0819 {}
+ public static class TestClass_0820 {}
+ public static class TestClass_0821 {}
+ public static class TestClass_0822 {}
+ public static class TestClass_0823 {}
+ public static class TestClass_0824 {}
+ public static class TestClass_0825 {}
+ public static class TestClass_0826 {}
+ public static class TestClass_0827 {}
+ public static class TestClass_0828 {}
+ public static class TestClass_0829 {}
+ public static class TestClass_0830 {}
+ public static class TestClass_0831 {}
+ public static class TestClass_0832 {}
+ public static class TestClass_0833 {}
+ public static class TestClass_0834 {}
+ public static class TestClass_0835 {}
+ public static class TestClass_0836 {}
+ public static class TestClass_0837 {}
+ public static class TestClass_0838 {}
+ public static class TestClass_0839 {}
+ public static class TestClass_0840 {}
+ public static class TestClass_0841 {}
+ public static class TestClass_0842 {}
+ public static class TestClass_0843 {}
+ public static class TestClass_0844 {}
+ public static class TestClass_0845 {}
+ public static class TestClass_0846 {}
+ public static class TestClass_0847 {}
+ public static class TestClass_0848 {}
+ public static class TestClass_0849 {}
+ public static class TestClass_0850 {}
+ public static class TestClass_0851 {}
+ public static class TestClass_0852 {}
+ public static class TestClass_0853 {}
+ public static class TestClass_0854 {}
+ public static class TestClass_0855 {}
+ public static class TestClass_0856 {}
+ public static class TestClass_0857 {}
+ public static class TestClass_0858 {}
+ public static class TestClass_0859 {}
+ public static class TestClass_0860 {}
+ public static class TestClass_0861 {}
+ public static class TestClass_0862 {}
+ public static class TestClass_0863 {}
+ public static class TestClass_0864 {}
+ public static class TestClass_0865 {}
+ public static class TestClass_0866 {}
+ public static class TestClass_0867 {}
+ public static class TestClass_0868 {}
+ public static class TestClass_0869 {}
+ public static class TestClass_0870 {}
+ public static class TestClass_0871 {}
+ public static class TestClass_0872 {}
+ public static class TestClass_0873 {}
+ public static class TestClass_0874 {}
+ public static class TestClass_0875 {}
+ public static class TestClass_0876 {}
+ public static class TestClass_0877 {}
+ public static class TestClass_0878 {}
+ public static class TestClass_0879 {}
+ public static class TestClass_0880 {}
+ public static class TestClass_0881 {}
+ public static class TestClass_0882 {}
+ public static class TestClass_0883 {}
+ public static class TestClass_0884 {}
+ public static class TestClass_0885 {}
+ public static class TestClass_0886 {}
+ public static class TestClass_0887 {}
+ public static class TestClass_0888 {}
+ public static class TestClass_0889 {}
+ public static class TestClass_0890 {}
+ public static class TestClass_0891 {}
+ public static class TestClass_0892 {}
+ public static class TestClass_0893 {}
+ public static class TestClass_0894 {}
+ public static class TestClass_0895 {}
+ public static class TestClass_0896 {}
+ public static class TestClass_0897 {}
+ public static class TestClass_0898 {}
+ public static class TestClass_0899 {}
+ public static class TestClass_0900 {}
+ public static class TestClass_0901 {}
+ public static class TestClass_0902 {}
+ public static class TestClass_0903 {}
+ public static class TestClass_0904 {}
+ public static class TestClass_0905 {}
+ public static class TestClass_0906 {}
+ public static class TestClass_0907 {}
+ public static class TestClass_0908 {}
+ public static class TestClass_0909 {}
+ public static class TestClass_0910 {}
+ public static class TestClass_0911 {}
+ public static class TestClass_0912 {}
+ public static class TestClass_0913 {}
+ public static class TestClass_0914 {}
+ public static class TestClass_0915 {}
+ public static class TestClass_0916 {}
+ public static class TestClass_0917 {}
+ public static class TestClass_0918 {}
+ public static class TestClass_0919 {}
+ public static class TestClass_0920 {}
+ public static class TestClass_0921 {}
+ public static class TestClass_0922 {}
+ public static class TestClass_0923 {}
+ public static class TestClass_0924 {}
+ public static class TestClass_0925 {}
+ public static class TestClass_0926 {}
+ public static class TestClass_0927 {}
+ public static class TestClass_0928 {}
+ public static class TestClass_0929 {}
+ public static class TestClass_0930 {}
+ public static class TestClass_0931 {}
+ public static class TestClass_0932 {}
+ public static class TestClass_0933 {}
+ public static class TestClass_0934 {}
+ public static class TestClass_0935 {}
+ public static class TestClass_0936 {}
+ public static class TestClass_0937 {}
+ public static class TestClass_0938 {}
+ public static class TestClass_0939 {}
+ public static class TestClass_0940 {}
+ public static class TestClass_0941 {}
+ public static class TestClass_0942 {}
+ public static class TestClass_0943 {}
+ public static class TestClass_0944 {}
+ public static class TestClass_0945 {}
+ public static class TestClass_0946 {}
+ public static class TestClass_0947 {}
+ public static class TestClass_0948 {}
+ public static class TestClass_0949 {}
+ public static class TestClass_0950 {}
+ public static class TestClass_0951 {}
+ public static class TestClass_0952 {}
+ public static class TestClass_0953 {}
+ public static class TestClass_0954 {}
+ public static class TestClass_0955 {}
+ public static class TestClass_0956 {}
+ public static class TestClass_0957 {}
+ public static class TestClass_0958 {}
+ public static class TestClass_0959 {}
+ public static class TestClass_0960 {}
+ public static class TestClass_0961 {}
+ public static class TestClass_0962 {}
+ public static class TestClass_0963 {}
+ public static class TestClass_0964 {}
+ public static class TestClass_0965 {}
+ public static class TestClass_0966 {}
+ public static class TestClass_0967 {}
+ public static class TestClass_0968 {}
+ public static class TestClass_0969 {}
+ public static class TestClass_0970 {}
+ public static class TestClass_0971 {}
+ public static class TestClass_0972 {}
+ public static class TestClass_0973 {}
+ public static class TestClass_0974 {}
+ public static class TestClass_0975 {}
+ public static class TestClass_0976 {}
+ public static class TestClass_0977 {}
+ public static class TestClass_0978 {}
+ public static class TestClass_0979 {}
+ public static class TestClass_0980 {}
+ public static class TestClass_0981 {}
+ public static class TestClass_0982 {}
+ public static class TestClass_0983 {}
+ public static class TestClass_0984 {}
+ public static class TestClass_0985 {}
+ public static class TestClass_0986 {}
+ public static class TestClass_0987 {}
+ public static class TestClass_0988 {}
+ public static class TestClass_0989 {}
+ public static class TestClass_0990 {}
+ public static class TestClass_0991 {}
+ public static class TestClass_0992 {}
+ public static class TestClass_0993 {}
+ public static class TestClass_0994 {}
+ public static class TestClass_0995 {}
+ public static class TestClass_0996 {}
+ public static class TestClass_0997 {}
+ public static class TestClass_0998 {}
+ public static class TestClass_0999 {}
+ public static class TestClass_1000 {}
+ public static class TestClass_1001 {}
+ public static class TestClass_1002 {}
+ public static class TestClass_1003 {}
+ public static class TestClass_1004 {}
+ public static class TestClass_1005 {}
+ public static class TestClass_1006 {}
+ public static class TestClass_1007 {}
+ public static class TestClass_1008 {}
+ public static class TestClass_1009 {}
+ public static class TestClass_1010 {}
+ public static class TestClass_1011 {}
+ public static class TestClass_1012 {}
+ public static class TestClass_1013 {}
+ public static class TestClass_1014 {}
+ public static class TestClass_1015 {}
+ public static class TestClass_1016 {}
+ public static class TestClass_1017 {}
+ public static class TestClass_1018 {}
+ public static class TestClass_1019 {}
+ public static class TestClass_1020 {}
+ public static class TestClass_1021 {}
+ public static class TestClass_1022 {}
+ public static class TestClass_1023 {}
+ public static class TestClass_1024 {}
+
+ public void timeConstClassWithConflict(int count) {
+ Class<?> class0001 = TestClass_0001.class;
+ for (int i = 0; i < count; ++i) {
+ $noinline$foo(class0001); // Prevent LICM on the TestClass_xxxx.class below.
+ $noinline$foo(TestClass_0000.class);
+ $noinline$foo(TestClass_1024.class);
+ }
+ }
+
+ public void timeConstClassWithoutConflict(int count) {
+ Class<?> class0000 = TestClass_0000.class;
+ for (int i = 0; i < count; ++i) {
+ $noinline$foo(class0000); // Prevent LICM on the TestClass_xxxx.class below.
+ $noinline$foo(TestClass_0001.class);
+ $noinline$foo(TestClass_1023.class);
+ }
+ }
+
+ static void $noinline$foo(Class<?> s) {
+ if (doThrow) { throw new Error(); }
+ }
+
+ public static boolean doThrow = false;
+}
diff --git a/benchmark/const-string/src/ConstStringBenchmark.java b/benchmark/const-string/src/ConstStringBenchmark.java
index 2beb0a4c60..2359a5f1fb 100644
--- a/benchmark/const-string/src/ConstStringBenchmark.java
+++ b/benchmark/const-string/src/ConstStringBenchmark.java
@@ -18,6 +18,7 @@ public class ConstStringBenchmark {
// Initialize 1025 strings with consecutive string indexes in the dex file.
// The tests below rely on the knowledge that ART uses the low 10 bits
// of the string index as the hash into DexCache strings array.
+ // Note: n == n + 1024 (mod 2^10), n + 1 != n + 1023 (mod 2^10).
public static final String string_0000 = "TestString_0000";
public static final String string_0001 = "TestString_0001";
public static final String string_0002 = "TestString_0002";
@@ -1045,21 +1046,21 @@ public class ConstStringBenchmark {
public static final String string_1024 = "TestString_1024";
public void timeConstStringsWithConflict(int count) {
- for (int i = 0; i < count; ++i) {
- $noinline$foo("TestString_0000");
- $noinline$foo("TestString_1024");
- }
+ for (int i = 0; i < count; ++i) {
+ $noinline$foo("TestString_0000");
+ $noinline$foo("TestString_1024");
+ }
}
public void timeConstStringsWithoutConflict(int count) {
- for (int i = 0; i < count; ++i) {
- $noinline$foo("TestString_0001");
- $noinline$foo("TestString_1023");
- }
+ for (int i = 0; i < count; ++i) {
+ $noinline$foo("TestString_0001");
+ $noinline$foo("TestString_1023");
+ }
}
static void $noinline$foo(String s) {
- if (doThrow) { throw new Error(); }
+ if (doThrow) { throw new Error(); }
}
public static boolean doThrow = false;