/* * 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(); } } }