diff options
author | Vladimir Marko <vmarko@google.com> | 2016-11-16 15:40:12 +0000 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2016-11-17 11:30:13 +0000 |
commit | fa1b78f19e689d8fc98e2d5b5ce9746e589fb88b (patch) | |
tree | c2a3f73514597ba05856f9cc33e2a97739fa1248 /benchmark | |
parent | ecd8300b94938f22fa3988c58187acce9f091da8 (diff) | |
download | android_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.txt | 1 | ||||
-rw-r--r-- | benchmark/const-class/src/ConstClassBenchmark.java | 1071 | ||||
-rw-r--r-- | benchmark/const-string/src/ConstStringBenchmark.java | 19 |
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; |