summaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2016-10-10 13:31:30 -0700
committerMathieu Chartier <mathieuc@google.com>2016-10-10 13:58:47 -0700
commite70784b5f86e28da09475d1d7c7d991d59ec8373 (patch)
tree2401f2b065f078a7aa74d148fbb21ae89c69c123 /benchmarks
parentebe73bd26534727a6f7a2acc47af426b02240517 (diff)
Add object clone benchmark
Bug: 32012820 Test: vogar --benchmark libcore/benchmarks/src/benchmarks/CloneBenchmark.java Change-Id: Icc5d4a758cb4f4e1686389bb0cb74ac08e554f04
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/src/benchmarks/CloneBenchmark.java1071
1 files changed, 1071 insertions, 0 deletions
diff --git a/benchmarks/src/benchmarks/CloneBenchmark.java b/benchmarks/src/benchmarks/CloneBenchmark.java
new file mode 100644
index 0000000000..d05fb3d906
--- /dev/null
+++ b/benchmarks/src/benchmarks/CloneBenchmark.java
@@ -0,0 +1,1071 @@
+/*
+ * Copyright (C) 2016 Google Inc.
+ *
+ * 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.
+ */
+
+package benchmarks;
+
+public class CloneBenchmark {
+ static class CloneableObject implements Cloneable {
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+ }
+
+ static class CloneableManyFieldObject implements Cloneable {
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ Object o1 = new Object();
+ Object o2 = new Object();
+ Object o3 = new Object();
+ Object o4 = new Object();
+ Object o5 = new Object();
+ Object o6 = new Object();
+ Object o7 = new Object();
+ Object o8 = new Object();
+ Object o9 = new Object();
+ Object o10 = new Object();
+ Object o11 = new Object();
+ Object o12 = new Object();
+ Object o13 = new Object();
+ Object o14 = new Object();
+ Object o15 = new Object();
+ Object o16 = new Object();
+ Object o17 = new Object();
+ Object o18 = new Object();
+ Object o19 = new Object();
+ Object o20 = new Object();
+ Object o21 = new Object();
+ Object o22 = new Object();
+ Object o23 = new Object();
+ Object o24 = new Object();
+ Object o25 = new Object();
+ Object o26 = new Object();
+ Object o27 = new Object();
+ Object o28 = new Object();
+ Object o29 = new Object();
+ Object o30 = new Object();
+ Object o31 = new Object();
+ Object o32 = new Object();
+ Object o33 = new Object();
+ Object o34 = new Object();
+ Object o35 = new Object();
+ Object o36 = new Object();
+ Object o37 = new Object();
+ Object o38 = new Object();
+ Object o39 = new Object();
+ Object o40 = new Object();
+ Object o41 = new Object();
+ Object o42 = new Object();
+ Object o43 = new Object();
+ Object o44 = new Object();
+ Object o45 = new Object();
+ Object o46 = new Object();
+ Object o47 = new Object();
+ Object o48 = new Object();
+ Object o49 = new Object();
+ Object o50 = new Object();
+ Object o51 = new Object();
+ Object o52 = new Object();
+ Object o53 = new Object();
+ Object o54 = new Object();
+ Object o55 = new Object();
+ Object o56 = new Object();
+ Object o57 = new Object();
+ Object o58 = new Object();
+ Object o59 = new Object();
+ Object o60 = new Object();
+ Object o61 = new Object();
+ Object o62 = new Object();
+ Object o63 = new Object();
+ Object o64 = new Object();
+ Object o65 = new Object();
+ Object o66 = new Object();
+ Object o67 = new Object();
+ Object o68 = new Object();
+ Object o69 = new Object();
+ Object o70 = new Object();
+ Object o71 = new Object();
+ Object o72 = new Object();
+ Object o73 = new Object();
+ Object o74 = new Object();
+ Object o75 = new Object();
+ Object o76 = new Object();
+ Object o77 = new Object();
+ Object o78 = new Object();
+ Object o79 = new Object();
+ Object o80 = new Object();
+ Object o81 = new Object();
+ Object o82 = new Object();
+ Object o83 = new Object();
+ Object o84 = new Object();
+ Object o85 = new Object();
+ Object o86 = new Object();
+ Object o87 = new Object();
+ Object o88 = new Object();
+ Object o89 = new Object();
+ Object o90 = new Object();
+ Object o91 = new Object();
+ Object o92 = new Object();
+ Object o93 = new Object();
+ Object o94 = new Object();
+ Object o95 = new Object();
+ Object o96 = new Object();
+ Object o97 = new Object();
+ Object o98 = new Object();
+ Object o99 = new Object();
+ Object o100 = new Object();
+ Object o101 = new Object();
+ Object o102 = new Object();
+ Object o103 = new Object();
+ Object o104 = new Object();
+ Object o105 = new Object();
+ Object o106 = new Object();
+ Object o107 = new Object();
+ Object o108 = new Object();
+ Object o109 = new Object();
+ Object o110 = new Object();
+ Object o111 = new Object();
+ Object o112 = new Object();
+ Object o113 = new Object();
+ Object o114 = new Object();
+ Object o115 = new Object();
+ Object o116 = new Object();
+ Object o117 = new Object();
+ Object o118 = new Object();
+ Object o119 = new Object();
+ Object o120 = new Object();
+ Object o121 = new Object();
+ Object o122 = new Object();
+ Object o123 = new Object();
+ Object o124 = new Object();
+ Object o125 = new Object();
+ Object o126 = new Object();
+ Object o127 = new Object();
+ Object o128 = new Object();
+ Object o129 = new Object();
+ Object o130 = new Object();
+ Object o131 = new Object();
+ Object o132 = new Object();
+ Object o133 = new Object();
+ Object o134 = new Object();
+ Object o135 = new Object();
+ Object o136 = new Object();
+ Object o137 = new Object();
+ Object o138 = new Object();
+ Object o139 = new Object();
+ Object o140 = new Object();
+ Object o141 = new Object();
+ Object o142 = new Object();
+ Object o143 = new Object();
+ Object o144 = new Object();
+ Object o145 = new Object();
+ Object o146 = new Object();
+ Object o147 = new Object();
+ Object o148 = new Object();
+ Object o149 = new Object();
+ Object o150 = new Object();
+ Object o151 = new Object();
+ Object o152 = new Object();
+ Object o153 = new Object();
+ Object o154 = new Object();
+ Object o155 = new Object();
+ Object o156 = new Object();
+ Object o157 = new Object();
+ Object o158 = new Object();
+ Object o159 = new Object();
+ Object o160 = new Object();
+ Object o161 = new Object();
+ Object o162 = new Object();
+ Object o163 = new Object();
+ Object o164 = new Object();
+ Object o165 = new Object();
+ Object o166 = new Object();
+ Object o167 = new Object();
+ Object o168 = new Object();
+ Object o169 = new Object();
+ Object o170 = new Object();
+ Object o171 = new Object();
+ Object o172 = new Object();
+ Object o173 = new Object();
+ Object o174 = new Object();
+ Object o175 = new Object();
+ Object o176 = new Object();
+ Object o177 = new Object();
+ Object o178 = new Object();
+ Object o179 = new Object();
+ Object o180 = new Object();
+ Object o181 = new Object();
+ Object o182 = new Object();
+ Object o183 = new Object();
+ Object o184 = new Object();
+ Object o185 = new Object();
+ Object o186 = new Object();
+ Object o187 = new Object();
+ Object o188 = new Object();
+ Object o189 = new Object();
+ Object o190 = new Object();
+ Object o191 = new Object();
+ Object o192 = new Object();
+ Object o193 = new Object();
+ Object o194 = new Object();
+ Object o195 = new Object();
+ Object o196 = new Object();
+ Object o197 = new Object();
+ Object o198 = new Object();
+ Object o199 = new Object();
+ Object o200 = new Object();
+ Object o201 = new Object();
+ Object o202 = new Object();
+ Object o203 = new Object();
+ Object o204 = new Object();
+ Object o205 = new Object();
+ Object o206 = new Object();
+ Object o207 = new Object();
+ Object o208 = new Object();
+ Object o209 = new Object();
+ Object o210 = new Object();
+ Object o211 = new Object();
+ Object o212 = new Object();
+ Object o213 = new Object();
+ Object o214 = new Object();
+ Object o215 = new Object();
+ Object o216 = new Object();
+ Object o217 = new Object();
+ Object o218 = new Object();
+ Object o219 = new Object();
+ Object o220 = new Object();
+ Object o221 = new Object();
+ Object o222 = new Object();
+ Object o223 = new Object();
+ Object o224 = new Object();
+ Object o225 = new Object();
+ Object o226 = new Object();
+ Object o227 = new Object();
+ Object o228 = new Object();
+ Object o229 = new Object();
+ Object o230 = new Object();
+ Object o231 = new Object();
+ Object o232 = new Object();
+ Object o233 = new Object();
+ Object o234 = new Object();
+ Object o235 = new Object();
+ Object o236 = new Object();
+ Object o237 = new Object();
+ Object o238 = new Object();
+ Object o239 = new Object();
+ Object o240 = new Object();
+ Object o241 = new Object();
+ Object o242 = new Object();
+ Object o243 = new Object();
+ Object o244 = new Object();
+ Object o245 = new Object();
+ Object o246 = new Object();
+ Object o247 = new Object();
+ Object o248 = new Object();
+ Object o249 = new Object();
+ Object o250 = new Object();
+ Object o251 = new Object();
+ Object o252 = new Object();
+ Object o253 = new Object();
+ Object o254 = new Object();
+ Object o255 = new Object();
+ Object o256 = new Object();
+ Object o257 = new Object();
+ Object o258 = new Object();
+ Object o259 = new Object();
+ Object o260 = new Object();
+ Object o261 = new Object();
+ Object o262 = new Object();
+ Object o263 = new Object();
+ Object o264 = new Object();
+ Object o265 = new Object();
+ Object o266 = new Object();
+ Object o267 = new Object();
+ Object o268 = new Object();
+ Object o269 = new Object();
+ Object o270 = new Object();
+ Object o271 = new Object();
+ Object o272 = new Object();
+ Object o273 = new Object();
+ Object o274 = new Object();
+ Object o275 = new Object();
+ Object o276 = new Object();
+ Object o277 = new Object();
+ Object o278 = new Object();
+ Object o279 = new Object();
+ Object o280 = new Object();
+ Object o281 = new Object();
+ Object o282 = new Object();
+ Object o283 = new Object();
+ Object o284 = new Object();
+ Object o285 = new Object();
+ Object o286 = new Object();
+ Object o287 = new Object();
+ Object o288 = new Object();
+ Object o289 = new Object();
+ Object o290 = new Object();
+ Object o291 = new Object();
+ Object o292 = new Object();
+ Object o293 = new Object();
+ Object o294 = new Object();
+ Object o295 = new Object();
+ Object o296 = new Object();
+ Object o297 = new Object();
+ Object o298 = new Object();
+ Object o299 = new Object();
+ Object o300 = new Object();
+ Object o301 = new Object();
+ Object o302 = new Object();
+ Object o303 = new Object();
+ Object o304 = new Object();
+ Object o305 = new Object();
+ Object o306 = new Object();
+ Object o307 = new Object();
+ Object o308 = new Object();
+ Object o309 = new Object();
+ Object o310 = new Object();
+ Object o311 = new Object();
+ Object o312 = new Object();
+ Object o313 = new Object();
+ Object o314 = new Object();
+ Object o315 = new Object();
+ Object o316 = new Object();
+ Object o317 = new Object();
+ Object o318 = new Object();
+ Object o319 = new Object();
+ Object o320 = new Object();
+ Object o321 = new Object();
+ Object o322 = new Object();
+ Object o323 = new Object();
+ Object o324 = new Object();
+ Object o325 = new Object();
+ Object o326 = new Object();
+ Object o327 = new Object();
+ Object o328 = new Object();
+ Object o329 = new Object();
+ Object o330 = new Object();
+ Object o331 = new Object();
+ Object o332 = new Object();
+ Object o333 = new Object();
+ Object o334 = new Object();
+ Object o335 = new Object();
+ Object o336 = new Object();
+ Object o337 = new Object();
+ Object o338 = new Object();
+ Object o339 = new Object();
+ Object o340 = new Object();
+ Object o341 = new Object();
+ Object o342 = new Object();
+ Object o343 = new Object();
+ Object o344 = new Object();
+ Object o345 = new Object();
+ Object o346 = new Object();
+ Object o347 = new Object();
+ Object o348 = new Object();
+ Object o349 = new Object();
+ Object o350 = new Object();
+ Object o351 = new Object();
+ Object o352 = new Object();
+ Object o353 = new Object();
+ Object o354 = new Object();
+ Object o355 = new Object();
+ Object o356 = new Object();
+ Object o357 = new Object();
+ Object o358 = new Object();
+ Object o359 = new Object();
+ Object o360 = new Object();
+ Object o361 = new Object();
+ Object o362 = new Object();
+ Object o363 = new Object();
+ Object o364 = new Object();
+ Object o365 = new Object();
+ Object o366 = new Object();
+ Object o367 = new Object();
+ Object o368 = new Object();
+ Object o369 = new Object();
+ Object o370 = new Object();
+ Object o371 = new Object();
+ Object o372 = new Object();
+ Object o373 = new Object();
+ Object o374 = new Object();
+ Object o375 = new Object();
+ Object o376 = new Object();
+ Object o377 = new Object();
+ Object o378 = new Object();
+ Object o379 = new Object();
+ Object o380 = new Object();
+ Object o381 = new Object();
+ Object o382 = new Object();
+ Object o383 = new Object();
+ Object o384 = new Object();
+ Object o385 = new Object();
+ Object o386 = new Object();
+ Object o387 = new Object();
+ Object o388 = new Object();
+ Object o389 = new Object();
+ Object o390 = new Object();
+ Object o391 = new Object();
+ Object o392 = new Object();
+ Object o393 = new Object();
+ Object o394 = new Object();
+ Object o395 = new Object();
+ Object o396 = new Object();
+ Object o397 = new Object();
+ Object o398 = new Object();
+ Object o399 = new Object();
+ Object o400 = new Object();
+ Object o401 = new Object();
+ Object o402 = new Object();
+ Object o403 = new Object();
+ Object o404 = new Object();
+ Object o405 = new Object();
+ Object o406 = new Object();
+ Object o407 = new Object();
+ Object o408 = new Object();
+ Object o409 = new Object();
+ Object o410 = new Object();
+ Object o411 = new Object();
+ Object o412 = new Object();
+ Object o413 = new Object();
+ Object o414 = new Object();
+ Object o415 = new Object();
+ Object o416 = new Object();
+ Object o417 = new Object();
+ Object o418 = new Object();
+ Object o419 = new Object();
+ Object o420 = new Object();
+ Object o421 = new Object();
+ Object o422 = new Object();
+ Object o423 = new Object();
+ Object o424 = new Object();
+ Object o425 = new Object();
+ Object o426 = new Object();
+ Object o427 = new Object();
+ Object o428 = new Object();
+ Object o429 = new Object();
+ Object o430 = new Object();
+ Object o431 = new Object();
+ Object o432 = new Object();
+ Object o433 = new Object();
+ Object o434 = new Object();
+ Object o435 = new Object();
+ Object o436 = new Object();
+ Object o437 = new Object();
+ Object o438 = new Object();
+ Object o439 = new Object();
+ Object o440 = new Object();
+ Object o441 = new Object();
+ Object o442 = new Object();
+ Object o460 = new Object();
+ Object o461 = new Object();
+ Object o462 = new Object();
+ Object o463 = new Object();
+ Object o464 = new Object();
+ Object o465 = new Object();
+ Object o466 = new Object();
+ Object o467 = new Object();
+ Object o468 = new Object();
+ Object o469 = new Object();
+ Object o470 = new Object();
+ Object o471 = new Object();
+ Object o472 = new Object();
+ Object o473 = new Object();
+ Object o474 = new Object();
+ Object o475 = new Object();
+ Object o476 = new Object();
+ Object o477 = new Object();
+ Object o478 = new Object();
+ Object o479 = new Object();
+ Object o480 = new Object();
+ Object o481 = new Object();
+ Object o482 = new Object();
+ Object o483 = new Object();
+ Object o484 = new Object();
+ Object o485 = new Object();
+ Object o486 = new Object();
+ Object o487 = new Object();
+ Object o488 = new Object();
+ Object o489 = new Object();
+ Object o490 = new Object();
+ Object o491 = new Object();
+ Object o492 = new Object();
+ Object o493 = new Object();
+ Object o494 = new Object();
+ Object o495 = new Object();
+ Object o496 = new Object();
+ Object o497 = new Object();
+ Object o498 = new Object();
+ Object o499 = new Object();
+ Object o500 = new Object();
+ Object o501 = new Object();
+ Object o502 = new Object();
+ Object o503 = new Object();
+ Object o504 = new Object();
+ Object o505 = new Object();
+ Object o506 = new Object();
+ Object o507 = new Object();
+ Object o508 = new Object();
+ Object o509 = new Object();
+ Object o510 = new Object();
+ Object o511 = new Object();
+ Object o512 = new Object();
+ Object o513 = new Object();
+ Object o514 = new Object();
+ Object o515 = new Object();
+ Object o516 = new Object();
+ Object o517 = new Object();
+ Object o518 = new Object();
+ Object o519 = new Object();
+ Object o520 = new Object();
+ Object o521 = new Object();
+ Object o522 = new Object();
+ Object o523 = new Object();
+ Object o556 = new Object();
+ Object o557 = new Object();
+ Object o558 = new Object();
+ Object o559 = new Object();
+ Object o560 = new Object();
+ Object o561 = new Object();
+ Object o562 = new Object();
+ Object o563 = new Object();
+ Object o564 = new Object();
+ Object o565 = new Object();
+ Object o566 = new Object();
+ Object o567 = new Object();
+ Object o568 = new Object();
+ Object o569 = new Object();
+ Object o570 = new Object();
+ Object o571 = new Object();
+ Object o572 = new Object();
+ Object o573 = new Object();
+ Object o574 = new Object();
+ Object o575 = new Object();
+ Object o576 = new Object();
+ Object o577 = new Object();
+ Object o578 = new Object();
+ Object o579 = new Object();
+ Object o580 = new Object();
+ Object o581 = new Object();
+ Object o582 = new Object();
+ Object o583 = new Object();
+ Object o584 = new Object();
+ Object o585 = new Object();
+ Object o586 = new Object();
+ Object o587 = new Object();
+ Object o588 = new Object();
+ Object o589 = new Object();
+ Object o590 = new Object();
+ Object o591 = new Object();
+ Object o592 = new Object();
+ Object o593 = new Object();
+ Object o594 = new Object();
+ Object o595 = new Object();
+ Object o596 = new Object();
+ Object o597 = new Object();
+ Object o598 = new Object();
+ Object o599 = new Object();
+ Object o600 = new Object();
+ Object o601 = new Object();
+ Object o602 = new Object();
+ Object o603 = new Object();
+ Object o604 = new Object();
+ Object o605 = new Object();
+ Object o606 = new Object();
+ Object o607 = new Object();
+ Object o608 = new Object();
+ Object o609 = new Object();
+ Object o610 = new Object();
+ Object o611 = new Object();
+ Object o612 = new Object();
+ Object o613 = new Object();
+ Object o614 = new Object();
+ Object o615 = new Object();
+ Object o616 = new Object();
+ Object o617 = new Object();
+ Object o618 = new Object();
+ Object o619 = new Object();
+ Object o620 = new Object();
+ Object o621 = new Object();
+ Object o622 = new Object();
+ Object o623 = new Object();
+ Object o624 = new Object();
+ Object o625 = new Object();
+ Object o626 = new Object();
+ Object o627 = new Object();
+ Object o628 = new Object();
+ Object o629 = new Object();
+ Object o630 = new Object();
+ Object o631 = new Object();
+ Object o632 = new Object();
+ Object o633 = new Object();
+ Object o634 = new Object();
+ Object o635 = new Object();
+ Object o636 = new Object();
+ Object o637 = new Object();
+ Object o638 = new Object();
+ Object o639 = new Object();
+ Object o640 = new Object();
+ Object o641 = new Object();
+ Object o642 = new Object();
+ Object o643 = new Object();
+ Object o644 = new Object();
+ Object o645 = new Object();
+ Object o646 = new Object();
+ Object o647 = new Object();
+ Object o648 = new Object();
+ Object o649 = new Object();
+ Object o650 = new Object();
+ Object o651 = new Object();
+ Object o652 = new Object();
+ Object o653 = new Object();
+ Object o654 = new Object();
+ Object o655 = new Object();
+ Object o656 = new Object();
+ Object o657 = new Object();
+ Object o658 = new Object();
+ Object o659 = new Object();
+ Object o660 = new Object();
+ Object o661 = new Object();
+ Object o662 = new Object();
+ Object o663 = new Object();
+ Object o664 = new Object();
+ Object o665 = new Object();
+ Object o666 = new Object();
+ Object o667 = new Object();
+ Object o668 = new Object();
+ Object o669 = new Object();
+ Object o670 = new Object();
+ Object o671 = new Object();
+ Object o672 = new Object();
+ Object o673 = new Object();
+ Object o674 = new Object();
+ Object o675 = new Object();
+ Object o676 = new Object();
+ Object o677 = new Object();
+ Object o678 = new Object();
+ Object o679 = new Object();
+ Object o680 = new Object();
+ Object o681 = new Object();
+ Object o682 = new Object();
+ Object o683 = new Object();
+ Object o684 = new Object();
+ Object o685 = new Object();
+ Object o686 = new Object();
+ Object o687 = new Object();
+ Object o688 = new Object();
+ Object o734 = new Object();
+ Object o735 = new Object();
+ Object o736 = new Object();
+ Object o737 = new Object();
+ Object o738 = new Object();
+ Object o739 = new Object();
+ Object o740 = new Object();
+ Object o741 = new Object();
+ Object o742 = new Object();
+ Object o743 = new Object();
+ Object o744 = new Object();
+ Object o745 = new Object();
+ Object o746 = new Object();
+ Object o747 = new Object();
+ Object o748 = new Object();
+ Object o749 = new Object();
+ Object o750 = new Object();
+ Object o751 = new Object();
+ Object o752 = new Object();
+ Object o753 = new Object();
+ Object o754 = new Object();
+ Object o755 = new Object();
+ Object o756 = new Object();
+ Object o757 = new Object();
+ Object o758 = new Object();
+ Object o759 = new Object();
+ Object o760 = new Object();
+ Object o761 = new Object();
+ Object o762 = new Object();
+ Object o763 = new Object();
+ Object o764 = new Object();
+ Object o765 = new Object();
+ Object o766 = new Object();
+ Object o767 = new Object();
+ Object o768 = new Object();
+ Object o769 = new Object();
+ Object o770 = new Object();
+ Object o771 = new Object();
+ Object o772 = new Object();
+ Object o773 = new Object();
+ Object o774 = new Object();
+ Object o775 = new Object();
+ Object o776 = new Object();
+ Object o777 = new Object();
+ Object o778 = new Object();
+ Object o779 = new Object();
+ Object o780 = new Object();
+ Object o781 = new Object();
+ Object o782 = new Object();
+ Object o783 = new Object();
+ Object o784 = new Object();
+ Object o785 = new Object();
+ Object o786 = new Object();
+ Object o787 = new Object();
+ Object o788 = new Object();
+ Object o789 = new Object();
+ Object o790 = new Object();
+ Object o791 = new Object();
+ Object o792 = new Object();
+ Object o793 = new Object();
+ Object o794 = new Object();
+ Object o795 = new Object();
+ Object o796 = new Object();
+ Object o797 = new Object();
+ Object o798 = new Object();
+ Object o799 = new Object();
+ Object o800 = new Object();
+ Object o801 = new Object();
+ Object o802 = new Object();
+ Object o803 = new Object();
+ Object o804 = new Object();
+ Object o805 = new Object();
+ Object o806 = new Object();
+ Object o807 = new Object();
+ Object o808 = new Object();
+ Object o809 = new Object();
+ Object o810 = new Object();
+ Object o811 = new Object();
+ Object o812 = new Object();
+ Object o813 = new Object();
+ Object o848 = new Object();
+ Object o849 = new Object();
+ Object o850 = new Object();
+ Object o851 = new Object();
+ Object o852 = new Object();
+ Object o853 = new Object();
+ Object o854 = new Object();
+ Object o855 = new Object();
+ Object o856 = new Object();
+ Object o857 = new Object();
+ Object o858 = new Object();
+ Object o859 = new Object();
+ Object o860 = new Object();
+ Object o861 = new Object();
+ Object o862 = new Object();
+ Object o863 = new Object();
+ Object o864 = new Object();
+ Object o865 = new Object();
+ Object o866 = new Object();
+ Object o867 = new Object();
+ Object o868 = new Object();
+ Object o869 = new Object();
+ Object o870 = new Object();
+ Object o871 = new Object();
+ Object o872 = new Object();
+ Object o873 = new Object();
+ Object o874 = new Object();
+ Object o875 = new Object();
+ Object o876 = new Object();
+ Object o877 = new Object();
+ Object o878 = new Object();
+ Object o879 = new Object();
+ Object o880 = new Object();
+ Object o881 = new Object();
+ Object o882 = new Object();
+ Object o883 = new Object();
+ Object o884 = new Object();
+ Object o885 = new Object();
+ Object o886 = new Object();
+ Object o887 = new Object();
+ Object o888 = new Object();
+ Object o889 = new Object();
+ Object o890 = new Object();
+ Object o891 = new Object();
+ Object o892 = new Object();
+ Object o893 = new Object();
+ Object o894 = new Object();
+ Object o895 = new Object();
+ Object o896 = new Object();
+ Object o897 = new Object();
+ Object o898 = new Object();
+ Object o899 = new Object();
+ Object o900 = new Object();
+ Object o901 = new Object();
+ Object o902 = new Object();
+ Object o903 = new Object();
+ Object o904 = new Object();
+ Object o905 = new Object();
+ Object o906 = new Object();
+ Object o907 = new Object();
+ Object o908 = new Object();
+ Object o909 = new Object();
+ Object o910 = new Object();
+ Object o911 = new Object();
+ Object o912 = new Object();
+ Object o913 = new Object();
+ Object o914 = new Object();
+ Object o915 = new Object();
+ Object o916 = new Object();
+ Object o917 = new Object();
+ Object o918 = new Object();
+ Object o919 = new Object();
+ Object o920 = new Object();
+ Object o921 = new Object();
+ Object o922 = new Object();
+ Object o923 = new Object();
+ Object o924 = new Object();
+ Object o925 = new Object();
+ Object o926 = new Object();
+ Object o927 = new Object();
+ Object o928 = new Object();
+ Object o929 = new Object();
+ Object o930 = new Object();
+ Object o931 = new Object();
+ Object o932 = new Object();
+ Object o933 = new Object();
+ Object o934 = new Object();
+ Object o935 = new Object();
+ Object o936 = new Object();
+ Object o937 = new Object();
+ Object o938 = new Object();
+ Object o939 = new Object();
+ Object o940 = new Object();
+ Object o941 = new Object();
+ Object o942 = new Object();
+ Object o943 = new Object();
+ Object o944 = new Object();
+ Object o945 = new Object();
+ Object o946 = new Object();
+ Object o947 = new Object();
+ Object o948 = new Object();
+ Object o949 = new Object();
+ Object o950 = new Object();
+ Object o951 = new Object();
+ Object o952 = new Object();
+ Object o953 = new Object();
+ Object o954 = new Object();
+ Object o955 = new Object();
+ Object o956 = new Object();
+ Object o957 = new Object();
+ Object o958 = new Object();
+ Object o959 = new Object();
+ Object o960 = new Object();
+ Object o961 = new Object();
+ Object o962 = new Object();
+ Object o963 = new Object();
+ Object o964 = new Object();
+ Object o965 = new Object();
+ Object o966 = new Object();
+ Object o967 = new Object();
+ Object o968 = new Object();
+ Object o969 = new Object();
+ Object o970 = new Object();
+ Object o971 = new Object();
+ Object o972 = new Object();
+ Object o973 = new Object();
+ Object o974 = new Object();
+ Object o975 = new Object();
+ Object o976 = new Object();
+ Object o977 = new Object();
+ Object o978 = new Object();
+ Object o979 = new Object();
+ Object o980 = new Object();
+ Object o981 = new Object();
+ Object o982 = new Object();
+ Object o983 = new Object();
+ Object o984 = new Object();
+ Object o985 = new Object();
+ Object o986 = new Object();
+ Object o987 = new Object();
+ Object o988 = new Object();
+ Object o989 = new Object();
+ Object o990 = new Object();
+ Object o991 = new Object();
+ Object o992 = new Object();
+ Object o993 = new Object();
+ Object o994 = new Object();
+ Object o995 = new Object();
+ Object o996 = new Object();
+ Object o997 = new Object();
+ Object o998 = new Object();
+ Object o999 = new Object();
+ }
+
+ static class Deep0 {}
+ static class Deep1 extends Deep0 {}
+ static class Deep2 extends Deep1 {}
+ static class Deep3 extends Deep2 {}
+ static class Deep4 extends Deep3 {}
+ static class Deep5 extends Deep4 {}
+ static class Deep6 extends Deep5 {}
+ static class Deep7 extends Deep6 {}
+ static class Deep8 extends Deep7 {}
+ static class Deep9 extends Deep8 {}
+ static class Deep10 extends Deep9 {}
+ static class Deep11 extends Deep10 {}
+ static class Deep12 extends Deep11 {}
+ static class Deep13 extends Deep12 {}
+ static class Deep14 extends Deep13 {}
+ static class Deep15 extends Deep14 {}
+ static class Deep16 extends Deep15 {}
+ static class Deep17 extends Deep16 {}
+ static class Deep18 extends Deep17 {}
+ static class Deep19 extends Deep18 {}
+ static class Deep20 extends Deep19 {}
+ static class Deep21 extends Deep20 {}
+ static class Deep22 extends Deep21 {}
+ static class Deep23 extends Deep22 {}
+ static class Deep24 extends Deep23 {}
+ static class Deep25 extends Deep24 {}
+ static class Deep26 extends Deep25 {}
+ static class Deep27 extends Deep26 {}
+ static class Deep28 extends Deep27 {}
+ static class Deep29 extends Deep28 {}
+ static class Deep30 extends Deep29 {}
+ static class Deep31 extends Deep30 {}
+ static class Deep32 extends Deep31 {}
+ static class Deep33 extends Deep32 {}
+ static class Deep34 extends Deep33 {}
+ static class Deep35 extends Deep34 {}
+ static class Deep36 extends Deep35 {}
+ static class Deep37 extends Deep36 {}
+ static class Deep38 extends Deep37 {}
+ static class Deep39 extends Deep38 {}
+ static class Deep40 extends Deep39 {}
+ static class Deep41 extends Deep40 {}
+ static class Deep42 extends Deep41 {}
+ static class Deep43 extends Deep42 {}
+ static class Deep44 extends Deep43 {}
+ static class Deep45 extends Deep44 {}
+ static class Deep46 extends Deep45 {}
+ static class Deep47 extends Deep46 {}
+ static class Deep48 extends Deep47 {}
+ static class Deep49 extends Deep48 {}
+ static class Deep50 extends Deep49 {}
+ static class Deep51 extends Deep50 {}
+ static class Deep52 extends Deep51 {}
+ static class Deep53 extends Deep52 {}
+ static class Deep54 extends Deep53 {}
+ static class Deep55 extends Deep54 {}
+ static class Deep56 extends Deep55 {}
+ static class Deep57 extends Deep56 {}
+ static class Deep58 extends Deep57 {}
+ static class Deep59 extends Deep58 {}
+ static class Deep60 extends Deep59 {}
+ static class Deep61 extends Deep60 {}
+ static class Deep62 extends Deep61 {}
+ static class Deep63 extends Deep62 {}
+ static class Deep64 extends Deep63 {}
+ static class Deep65 extends Deep64 {}
+ static class Deep66 extends Deep65 {}
+ static class Deep67 extends Deep66 {}
+ static class Deep68 extends Deep67 {}
+ static class Deep69 extends Deep68 {}
+ static class Deep70 extends Deep69 {}
+ static class Deep71 extends Deep70 {}
+ static class Deep72 extends Deep71 {}
+ static class Deep73 extends Deep72 {}
+ static class Deep74 extends Deep73 {}
+ static class Deep75 extends Deep74 {}
+ static class Deep76 extends Deep75 {}
+ static class Deep77 extends Deep76 {}
+ static class Deep78 extends Deep77 {}
+ static class Deep79 extends Deep78 {}
+ static class Deep80 extends Deep79 {}
+ static class Deep81 extends Deep80 {}
+ static class Deep82 extends Deep81 {}
+ static class Deep83 extends Deep82 {}
+ static class Deep84 extends Deep83 {}
+ static class Deep85 extends Deep84 {}
+ static class Deep86 extends Deep85 {}
+ static class Deep87 extends Deep86 {}
+ static class Deep88 extends Deep87 {}
+ static class Deep89 extends Deep88 {}
+ static class Deep90 extends Deep89 {}
+ static class Deep91 extends Deep90 {}
+ static class Deep92 extends Deep91 {}
+ static class Deep93 extends Deep92 {}
+ static class Deep94 extends Deep93 {}
+ static class Deep95 extends Deep94 {}
+ static class Deep96 extends Deep95 {}
+ static class Deep97 extends Deep96 {}
+ static class Deep98 extends Deep97 {}
+ static class Deep99 extends Deep98 {}
+ static class Deep100 extends Deep99 {}
+
+ static class DeepCloneable extends Deep100 implements Cloneable {
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+ }
+
+ public void time_Object_clone(int reps) {
+ try {
+ CloneableObject o = new CloneableObject();
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ } catch (Exception e) {
+ throw new AssertionError(e.getMessage());
+ }
+ }
+
+ public void time_Object_manyFieldClone(int reps) {
+ try {
+ CloneableManyFieldObject o = new CloneableManyFieldObject();
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ } catch (Exception e) {
+ throw new AssertionError(e.getMessage());
+ }
+ }
+
+ public void time_Object_deepClone(int reps) {
+ try {
+ DeepCloneable o = new DeepCloneable();
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ } catch (Exception e) {
+ throw new AssertionError(e.getMessage());
+ }
+ }
+
+ public void time_Array_clone(int reps) {
+ int[] o = new int[32];
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ }
+
+ public void time_ObjectArray_smallClone(int reps) {
+ Object[] o = new Object[32];
+ for (int i = 0; i < o.length / 2; ++i) {
+ o[i] = new Object();
+ }
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ }
+
+ public void time_ObjectArray_largeClone(int reps) {
+ Object[] o = new Object[2048];
+ for (int i = 0; i < o.length / 2; ++i) {
+ o[i] = new Object();
+ }
+ for (int rep = 0; rep < reps; ++rep) {
+ o.clone();
+ }
+ }
+}