1 /* 2 * Copyright (C) 2016 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package benchmarks; 18 19 public class CloneBenchmark { 20 static class CloneableObject implements Cloneable { 21 public Object clone() throws CloneNotSupportedException { 22 return super.clone(); 23 } 24 } 25 26 static class CloneableManyFieldObject implements Cloneable { 27 public Object clone() throws CloneNotSupportedException { 28 return super.clone(); 29 } 30 31 Object o1 = new Object(); 32 Object o2 = new Object(); 33 Object o3 = new Object(); 34 Object o4 = new Object(); 35 Object o5 = new Object(); 36 Object o6 = new Object(); 37 Object o7 = new Object(); 38 Object o8 = new Object(); 39 Object o9 = new Object(); 40 Object o10 = new Object(); 41 Object o11 = new Object(); 42 Object o12 = new Object(); 43 Object o13 = new Object(); 44 Object o14 = new Object(); 45 Object o15 = new Object(); 46 Object o16 = new Object(); 47 Object o17 = new Object(); 48 Object o18 = new Object(); 49 Object o19 = new Object(); 50 Object o20 = new Object(); 51 Object o21 = new Object(); 52 Object o22 = new Object(); 53 Object o23 = new Object(); 54 Object o24 = new Object(); 55 Object o25 = new Object(); 56 Object o26 = new Object(); 57 Object o27 = new Object(); 58 Object o28 = new Object(); 59 Object o29 = new Object(); 60 Object o30 = new Object(); 61 Object o31 = new Object(); 62 Object o32 = new Object(); 63 Object o33 = new Object(); 64 Object o34 = new Object(); 65 Object o35 = new Object(); 66 Object o36 = new Object(); 67 Object o37 = new Object(); 68 Object o38 = new Object(); 69 Object o39 = new Object(); 70 Object o40 = new Object(); 71 Object o41 = new Object(); 72 Object o42 = new Object(); 73 Object o43 = new Object(); 74 Object o44 = new Object(); 75 Object o45 = new Object(); 76 Object o46 = new Object(); 77 Object o47 = new Object(); 78 Object o48 = new Object(); 79 Object o49 = new Object(); 80 Object o50 = new Object(); 81 Object o51 = new Object(); 82 Object o52 = new Object(); 83 Object o53 = new Object(); 84 Object o54 = new Object(); 85 Object o55 = new Object(); 86 Object o56 = new Object(); 87 Object o57 = new Object(); 88 Object o58 = new Object(); 89 Object o59 = new Object(); 90 Object o60 = new Object(); 91 Object o61 = new Object(); 92 Object o62 = new Object(); 93 Object o63 = new Object(); 94 Object o64 = new Object(); 95 Object o65 = new Object(); 96 Object o66 = new Object(); 97 Object o67 = new Object(); 98 Object o68 = new Object(); 99 Object o69 = new Object(); 100 Object o70 = new Object(); 101 Object o71 = new Object(); 102 Object o72 = new Object(); 103 Object o73 = new Object(); 104 Object o74 = new Object(); 105 Object o75 = new Object(); 106 Object o76 = new Object(); 107 Object o77 = new Object(); 108 Object o78 = new Object(); 109 Object o79 = new Object(); 110 Object o80 = new Object(); 111 Object o81 = new Object(); 112 Object o82 = new Object(); 113 Object o83 = new Object(); 114 Object o84 = new Object(); 115 Object o85 = new Object(); 116 Object o86 = new Object(); 117 Object o87 = new Object(); 118 Object o88 = new Object(); 119 Object o89 = new Object(); 120 Object o90 = new Object(); 121 Object o91 = new Object(); 122 Object o92 = new Object(); 123 Object o93 = new Object(); 124 Object o94 = new Object(); 125 Object o95 = new Object(); 126 Object o96 = new Object(); 127 Object o97 = new Object(); 128 Object o98 = new Object(); 129 Object o99 = new Object(); 130 Object o100 = new Object(); 131 Object o101 = new Object(); 132 Object o102 = new Object(); 133 Object o103 = new Object(); 134 Object o104 = new Object(); 135 Object o105 = new Object(); 136 Object o106 = new Object(); 137 Object o107 = new Object(); 138 Object o108 = new Object(); 139 Object o109 = new Object(); 140 Object o110 = new Object(); 141 Object o111 = new Object(); 142 Object o112 = new Object(); 143 Object o113 = new Object(); 144 Object o114 = new Object(); 145 Object o115 = new Object(); 146 Object o116 = new Object(); 147 Object o117 = new Object(); 148 Object o118 = new Object(); 149 Object o119 = new Object(); 150 Object o120 = new Object(); 151 Object o121 = new Object(); 152 Object o122 = new Object(); 153 Object o123 = new Object(); 154 Object o124 = new Object(); 155 Object o125 = new Object(); 156 Object o126 = new Object(); 157 Object o127 = new Object(); 158 Object o128 = new Object(); 159 Object o129 = new Object(); 160 Object o130 = new Object(); 161 Object o131 = new Object(); 162 Object o132 = new Object(); 163 Object o133 = new Object(); 164 Object o134 = new Object(); 165 Object o135 = new Object(); 166 Object o136 = new Object(); 167 Object o137 = new Object(); 168 Object o138 = new Object(); 169 Object o139 = new Object(); 170 Object o140 = new Object(); 171 Object o141 = new Object(); 172 Object o142 = new Object(); 173 Object o143 = new Object(); 174 Object o144 = new Object(); 175 Object o145 = new Object(); 176 Object o146 = new Object(); 177 Object o147 = new Object(); 178 Object o148 = new Object(); 179 Object o149 = new Object(); 180 Object o150 = new Object(); 181 Object o151 = new Object(); 182 Object o152 = new Object(); 183 Object o153 = new Object(); 184 Object o154 = new Object(); 185 Object o155 = new Object(); 186 Object o156 = new Object(); 187 Object o157 = new Object(); 188 Object o158 = new Object(); 189 Object o159 = new Object(); 190 Object o160 = new Object(); 191 Object o161 = new Object(); 192 Object o162 = new Object(); 193 Object o163 = new Object(); 194 Object o164 = new Object(); 195 Object o165 = new Object(); 196 Object o166 = new Object(); 197 Object o167 = new Object(); 198 Object o168 = new Object(); 199 Object o169 = new Object(); 200 Object o170 = new Object(); 201 Object o171 = new Object(); 202 Object o172 = new Object(); 203 Object o173 = new Object(); 204 Object o174 = new Object(); 205 Object o175 = new Object(); 206 Object o176 = new Object(); 207 Object o177 = new Object(); 208 Object o178 = new Object(); 209 Object o179 = new Object(); 210 Object o180 = new Object(); 211 Object o181 = new Object(); 212 Object o182 = new Object(); 213 Object o183 = new Object(); 214 Object o184 = new Object(); 215 Object o185 = new Object(); 216 Object o186 = new Object(); 217 Object o187 = new Object(); 218 Object o188 = new Object(); 219 Object o189 = new Object(); 220 Object o190 = new Object(); 221 Object o191 = new Object(); 222 Object o192 = new Object(); 223 Object o193 = new Object(); 224 Object o194 = new Object(); 225 Object o195 = new Object(); 226 Object o196 = new Object(); 227 Object o197 = new Object(); 228 Object o198 = new Object(); 229 Object o199 = new Object(); 230 Object o200 = new Object(); 231 Object o201 = new Object(); 232 Object o202 = new Object(); 233 Object o203 = new Object(); 234 Object o204 = new Object(); 235 Object o205 = new Object(); 236 Object o206 = new Object(); 237 Object o207 = new Object(); 238 Object o208 = new Object(); 239 Object o209 = new Object(); 240 Object o210 = new Object(); 241 Object o211 = new Object(); 242 Object o212 = new Object(); 243 Object o213 = new Object(); 244 Object o214 = new Object(); 245 Object o215 = new Object(); 246 Object o216 = new Object(); 247 Object o217 = new Object(); 248 Object o218 = new Object(); 249 Object o219 = new Object(); 250 Object o220 = new Object(); 251 Object o221 = new Object(); 252 Object o222 = new Object(); 253 Object o223 = new Object(); 254 Object o224 = new Object(); 255 Object o225 = new Object(); 256 Object o226 = new Object(); 257 Object o227 = new Object(); 258 Object o228 = new Object(); 259 Object o229 = new Object(); 260 Object o230 = new Object(); 261 Object o231 = new Object(); 262 Object o232 = new Object(); 263 Object o233 = new Object(); 264 Object o234 = new Object(); 265 Object o235 = new Object(); 266 Object o236 = new Object(); 267 Object o237 = new Object(); 268 Object o238 = new Object(); 269 Object o239 = new Object(); 270 Object o240 = new Object(); 271 Object o241 = new Object(); 272 Object o242 = new Object(); 273 Object o243 = new Object(); 274 Object o244 = new Object(); 275 Object o245 = new Object(); 276 Object o246 = new Object(); 277 Object o247 = new Object(); 278 Object o248 = new Object(); 279 Object o249 = new Object(); 280 Object o250 = new Object(); 281 Object o251 = new Object(); 282 Object o252 = new Object(); 283 Object o253 = new Object(); 284 Object o254 = new Object(); 285 Object o255 = new Object(); 286 Object o256 = new Object(); 287 Object o257 = new Object(); 288 Object o258 = new Object(); 289 Object o259 = new Object(); 290 Object o260 = new Object(); 291 Object o261 = new Object(); 292 Object o262 = new Object(); 293 Object o263 = new Object(); 294 Object o264 = new Object(); 295 Object o265 = new Object(); 296 Object o266 = new Object(); 297 Object o267 = new Object(); 298 Object o268 = new Object(); 299 Object o269 = new Object(); 300 Object o270 = new Object(); 301 Object o271 = new Object(); 302 Object o272 = new Object(); 303 Object o273 = new Object(); 304 Object o274 = new Object(); 305 Object o275 = new Object(); 306 Object o276 = new Object(); 307 Object o277 = new Object(); 308 Object o278 = new Object(); 309 Object o279 = new Object(); 310 Object o280 = new Object(); 311 Object o281 = new Object(); 312 Object o282 = new Object(); 313 Object o283 = new Object(); 314 Object o284 = new Object(); 315 Object o285 = new Object(); 316 Object o286 = new Object(); 317 Object o287 = new Object(); 318 Object o288 = new Object(); 319 Object o289 = new Object(); 320 Object o290 = new Object(); 321 Object o291 = new Object(); 322 Object o292 = new Object(); 323 Object o293 = new Object(); 324 Object o294 = new Object(); 325 Object o295 = new Object(); 326 Object o296 = new Object(); 327 Object o297 = new Object(); 328 Object o298 = new Object(); 329 Object o299 = new Object(); 330 Object o300 = new Object(); 331 Object o301 = new Object(); 332 Object o302 = new Object(); 333 Object o303 = new Object(); 334 Object o304 = new Object(); 335 Object o305 = new Object(); 336 Object o306 = new Object(); 337 Object o307 = new Object(); 338 Object o308 = new Object(); 339 Object o309 = new Object(); 340 Object o310 = new Object(); 341 Object o311 = new Object(); 342 Object o312 = new Object(); 343 Object o313 = new Object(); 344 Object o314 = new Object(); 345 Object o315 = new Object(); 346 Object o316 = new Object(); 347 Object o317 = new Object(); 348 Object o318 = new Object(); 349 Object o319 = new Object(); 350 Object o320 = new Object(); 351 Object o321 = new Object(); 352 Object o322 = new Object(); 353 Object o323 = new Object(); 354 Object o324 = new Object(); 355 Object o325 = new Object(); 356 Object o326 = new Object(); 357 Object o327 = new Object(); 358 Object o328 = new Object(); 359 Object o329 = new Object(); 360 Object o330 = new Object(); 361 Object o331 = new Object(); 362 Object o332 = new Object(); 363 Object o333 = new Object(); 364 Object o334 = new Object(); 365 Object o335 = new Object(); 366 Object o336 = new Object(); 367 Object o337 = new Object(); 368 Object o338 = new Object(); 369 Object o339 = new Object(); 370 Object o340 = new Object(); 371 Object o341 = new Object(); 372 Object o342 = new Object(); 373 Object o343 = new Object(); 374 Object o344 = new Object(); 375 Object o345 = new Object(); 376 Object o346 = new Object(); 377 Object o347 = new Object(); 378 Object o348 = new Object(); 379 Object o349 = new Object(); 380 Object o350 = new Object(); 381 Object o351 = new Object(); 382 Object o352 = new Object(); 383 Object o353 = new Object(); 384 Object o354 = new Object(); 385 Object o355 = new Object(); 386 Object o356 = new Object(); 387 Object o357 = new Object(); 388 Object o358 = new Object(); 389 Object o359 = new Object(); 390 Object o360 = new Object(); 391 Object o361 = new Object(); 392 Object o362 = new Object(); 393 Object o363 = new Object(); 394 Object o364 = new Object(); 395 Object o365 = new Object(); 396 Object o366 = new Object(); 397 Object o367 = new Object(); 398 Object o368 = new Object(); 399 Object o369 = new Object(); 400 Object o370 = new Object(); 401 Object o371 = new Object(); 402 Object o372 = new Object(); 403 Object o373 = new Object(); 404 Object o374 = new Object(); 405 Object o375 = new Object(); 406 Object o376 = new Object(); 407 Object o377 = new Object(); 408 Object o378 = new Object(); 409 Object o379 = new Object(); 410 Object o380 = new Object(); 411 Object o381 = new Object(); 412 Object o382 = new Object(); 413 Object o383 = new Object(); 414 Object o384 = new Object(); 415 Object o385 = new Object(); 416 Object o386 = new Object(); 417 Object o387 = new Object(); 418 Object o388 = new Object(); 419 Object o389 = new Object(); 420 Object o390 = new Object(); 421 Object o391 = new Object(); 422 Object o392 = new Object(); 423 Object o393 = new Object(); 424 Object o394 = new Object(); 425 Object o395 = new Object(); 426 Object o396 = new Object(); 427 Object o397 = new Object(); 428 Object o398 = new Object(); 429 Object o399 = new Object(); 430 Object o400 = new Object(); 431 Object o401 = new Object(); 432 Object o402 = new Object(); 433 Object o403 = new Object(); 434 Object o404 = new Object(); 435 Object o405 = new Object(); 436 Object o406 = new Object(); 437 Object o407 = new Object(); 438 Object o408 = new Object(); 439 Object o409 = new Object(); 440 Object o410 = new Object(); 441 Object o411 = new Object(); 442 Object o412 = new Object(); 443 Object o413 = new Object(); 444 Object o414 = new Object(); 445 Object o415 = new Object(); 446 Object o416 = new Object(); 447 Object o417 = new Object(); 448 Object o418 = new Object(); 449 Object o419 = new Object(); 450 Object o420 = new Object(); 451 Object o421 = new Object(); 452 Object o422 = new Object(); 453 Object o423 = new Object(); 454 Object o424 = new Object(); 455 Object o425 = new Object(); 456 Object o426 = new Object(); 457 Object o427 = new Object(); 458 Object o428 = new Object(); 459 Object o429 = new Object(); 460 Object o430 = new Object(); 461 Object o431 = new Object(); 462 Object o432 = new Object(); 463 Object o433 = new Object(); 464 Object o434 = new Object(); 465 Object o435 = new Object(); 466 Object o436 = new Object(); 467 Object o437 = new Object(); 468 Object o438 = new Object(); 469 Object o439 = new Object(); 470 Object o440 = new Object(); 471 Object o441 = new Object(); 472 Object o442 = new Object(); 473 Object o460 = new Object(); 474 Object o461 = new Object(); 475 Object o462 = new Object(); 476 Object o463 = new Object(); 477 Object o464 = new Object(); 478 Object o465 = new Object(); 479 Object o466 = new Object(); 480 Object o467 = new Object(); 481 Object o468 = new Object(); 482 Object o469 = new Object(); 483 Object o470 = new Object(); 484 Object o471 = new Object(); 485 Object o472 = new Object(); 486 Object o473 = new Object(); 487 Object o474 = new Object(); 488 Object o475 = new Object(); 489 Object o476 = new Object(); 490 Object o477 = new Object(); 491 Object o478 = new Object(); 492 Object o479 = new Object(); 493 Object o480 = new Object(); 494 Object o481 = new Object(); 495 Object o482 = new Object(); 496 Object o483 = new Object(); 497 Object o484 = new Object(); 498 Object o485 = new Object(); 499 Object o486 = new Object(); 500 Object o487 = new Object(); 501 Object o488 = new Object(); 502 Object o489 = new Object(); 503 Object o490 = new Object(); 504 Object o491 = new Object(); 505 Object o492 = new Object(); 506 Object o493 = new Object(); 507 Object o494 = new Object(); 508 Object o495 = new Object(); 509 Object o496 = new Object(); 510 Object o497 = new Object(); 511 Object o498 = new Object(); 512 Object o499 = new Object(); 513 Object o500 = new Object(); 514 Object o501 = new Object(); 515 Object o502 = new Object(); 516 Object o503 = new Object(); 517 Object o504 = new Object(); 518 Object o505 = new Object(); 519 Object o506 = new Object(); 520 Object o507 = new Object(); 521 Object o508 = new Object(); 522 Object o509 = new Object(); 523 Object o510 = new Object(); 524 Object o511 = new Object(); 525 Object o512 = new Object(); 526 Object o513 = new Object(); 527 Object o514 = new Object(); 528 Object o515 = new Object(); 529 Object o516 = new Object(); 530 Object o517 = new Object(); 531 Object o518 = new Object(); 532 Object o519 = new Object(); 533 Object o520 = new Object(); 534 Object o521 = new Object(); 535 Object o522 = new Object(); 536 Object o523 = new Object(); 537 Object o556 = new Object(); 538 Object o557 = new Object(); 539 Object o558 = new Object(); 540 Object o559 = new Object(); 541 Object o560 = new Object(); 542 Object o561 = new Object(); 543 Object o562 = new Object(); 544 Object o563 = new Object(); 545 Object o564 = new Object(); 546 Object o565 = new Object(); 547 Object o566 = new Object(); 548 Object o567 = new Object(); 549 Object o568 = new Object(); 550 Object o569 = new Object(); 551 Object o570 = new Object(); 552 Object o571 = new Object(); 553 Object o572 = new Object(); 554 Object o573 = new Object(); 555 Object o574 = new Object(); 556 Object o575 = new Object(); 557 Object o576 = new Object(); 558 Object o577 = new Object(); 559 Object o578 = new Object(); 560 Object o579 = new Object(); 561 Object o580 = new Object(); 562 Object o581 = new Object(); 563 Object o582 = new Object(); 564 Object o583 = new Object(); 565 Object o584 = new Object(); 566 Object o585 = new Object(); 567 Object o586 = new Object(); 568 Object o587 = new Object(); 569 Object o588 = new Object(); 570 Object o589 = new Object(); 571 Object o590 = new Object(); 572 Object o591 = new Object(); 573 Object o592 = new Object(); 574 Object o593 = new Object(); 575 Object o594 = new Object(); 576 Object o595 = new Object(); 577 Object o596 = new Object(); 578 Object o597 = new Object(); 579 Object o598 = new Object(); 580 Object o599 = new Object(); 581 Object o600 = new Object(); 582 Object o601 = new Object(); 583 Object o602 = new Object(); 584 Object o603 = new Object(); 585 Object o604 = new Object(); 586 Object o605 = new Object(); 587 Object o606 = new Object(); 588 Object o607 = new Object(); 589 Object o608 = new Object(); 590 Object o609 = new Object(); 591 Object o610 = new Object(); 592 Object o611 = new Object(); 593 Object o612 = new Object(); 594 Object o613 = new Object(); 595 Object o614 = new Object(); 596 Object o615 = new Object(); 597 Object o616 = new Object(); 598 Object o617 = new Object(); 599 Object o618 = new Object(); 600 Object o619 = new Object(); 601 Object o620 = new Object(); 602 Object o621 = new Object(); 603 Object o622 = new Object(); 604 Object o623 = new Object(); 605 Object o624 = new Object(); 606 Object o625 = new Object(); 607 Object o626 = new Object(); 608 Object o627 = new Object(); 609 Object o628 = new Object(); 610 Object o629 = new Object(); 611 Object o630 = new Object(); 612 Object o631 = new Object(); 613 Object o632 = new Object(); 614 Object o633 = new Object(); 615 Object o634 = new Object(); 616 Object o635 = new Object(); 617 Object o636 = new Object(); 618 Object o637 = new Object(); 619 Object o638 = new Object(); 620 Object o639 = new Object(); 621 Object o640 = new Object(); 622 Object o641 = new Object(); 623 Object o642 = new Object(); 624 Object o643 = new Object(); 625 Object o644 = new Object(); 626 Object o645 = new Object(); 627 Object o646 = new Object(); 628 Object o647 = new Object(); 629 Object o648 = new Object(); 630 Object o649 = new Object(); 631 Object o650 = new Object(); 632 Object o651 = new Object(); 633 Object o652 = new Object(); 634 Object o653 = new Object(); 635 Object o654 = new Object(); 636 Object o655 = new Object(); 637 Object o656 = new Object(); 638 Object o657 = new Object(); 639 Object o658 = new Object(); 640 Object o659 = new Object(); 641 Object o660 = new Object(); 642 Object o661 = new Object(); 643 Object o662 = new Object(); 644 Object o663 = new Object(); 645 Object o664 = new Object(); 646 Object o665 = new Object(); 647 Object o666 = new Object(); 648 Object o667 = new Object(); 649 Object o668 = new Object(); 650 Object o669 = new Object(); 651 Object o670 = new Object(); 652 Object o671 = new Object(); 653 Object o672 = new Object(); 654 Object o673 = new Object(); 655 Object o674 = new Object(); 656 Object o675 = new Object(); 657 Object o676 = new Object(); 658 Object o677 = new Object(); 659 Object o678 = new Object(); 660 Object o679 = new Object(); 661 Object o680 = new Object(); 662 Object o681 = new Object(); 663 Object o682 = new Object(); 664 Object o683 = new Object(); 665 Object o684 = new Object(); 666 Object o685 = new Object(); 667 Object o686 = new Object(); 668 Object o687 = new Object(); 669 Object o688 = new Object(); 670 Object o734 = new Object(); 671 Object o735 = new Object(); 672 Object o736 = new Object(); 673 Object o737 = new Object(); 674 Object o738 = new Object(); 675 Object o739 = new Object(); 676 Object o740 = new Object(); 677 Object o741 = new Object(); 678 Object o742 = new Object(); 679 Object o743 = new Object(); 680 Object o744 = new Object(); 681 Object o745 = new Object(); 682 Object o746 = new Object(); 683 Object o747 = new Object(); 684 Object o748 = new Object(); 685 Object o749 = new Object(); 686 Object o750 = new Object(); 687 Object o751 = new Object(); 688 Object o752 = new Object(); 689 Object o753 = new Object(); 690 Object o754 = new Object(); 691 Object o755 = new Object(); 692 Object o756 = new Object(); 693 Object o757 = new Object(); 694 Object o758 = new Object(); 695 Object o759 = new Object(); 696 Object o760 = new Object(); 697 Object o761 = new Object(); 698 Object o762 = new Object(); 699 Object o763 = new Object(); 700 Object o764 = new Object(); 701 Object o765 = new Object(); 702 Object o766 = new Object(); 703 Object o767 = new Object(); 704 Object o768 = new Object(); 705 Object o769 = new Object(); 706 Object o770 = new Object(); 707 Object o771 = new Object(); 708 Object o772 = new Object(); 709 Object o773 = new Object(); 710 Object o774 = new Object(); 711 Object o775 = new Object(); 712 Object o776 = new Object(); 713 Object o777 = new Object(); 714 Object o778 = new Object(); 715 Object o779 = new Object(); 716 Object o780 = new Object(); 717 Object o781 = new Object(); 718 Object o782 = new Object(); 719 Object o783 = new Object(); 720 Object o784 = new Object(); 721 Object o785 = new Object(); 722 Object o786 = new Object(); 723 Object o787 = new Object(); 724 Object o788 = new Object(); 725 Object o789 = new Object(); 726 Object o790 = new Object(); 727 Object o791 = new Object(); 728 Object o792 = new Object(); 729 Object o793 = new Object(); 730 Object o794 = new Object(); 731 Object o795 = new Object(); 732 Object o796 = new Object(); 733 Object o797 = new Object(); 734 Object o798 = new Object(); 735 Object o799 = new Object(); 736 Object o800 = new Object(); 737 Object o801 = new Object(); 738 Object o802 = new Object(); 739 Object o803 = new Object(); 740 Object o804 = new Object(); 741 Object o805 = new Object(); 742 Object o806 = new Object(); 743 Object o807 = new Object(); 744 Object o808 = new Object(); 745 Object o809 = new Object(); 746 Object o810 = new Object(); 747 Object o811 = new Object(); 748 Object o812 = new Object(); 749 Object o813 = new Object(); 750 Object o848 = new Object(); 751 Object o849 = new Object(); 752 Object o850 = new Object(); 753 Object o851 = new Object(); 754 Object o852 = new Object(); 755 Object o853 = new Object(); 756 Object o854 = new Object(); 757 Object o855 = new Object(); 758 Object o856 = new Object(); 759 Object o857 = new Object(); 760 Object o858 = new Object(); 761 Object o859 = new Object(); 762 Object o860 = new Object(); 763 Object o861 = new Object(); 764 Object o862 = new Object(); 765 Object o863 = new Object(); 766 Object o864 = new Object(); 767 Object o865 = new Object(); 768 Object o866 = new Object(); 769 Object o867 = new Object(); 770 Object o868 = new Object(); 771 Object o869 = new Object(); 772 Object o870 = new Object(); 773 Object o871 = new Object(); 774 Object o872 = new Object(); 775 Object o873 = new Object(); 776 Object o874 = new Object(); 777 Object o875 = new Object(); 778 Object o876 = new Object(); 779 Object o877 = new Object(); 780 Object o878 = new Object(); 781 Object o879 = new Object(); 782 Object o880 = new Object(); 783 Object o881 = new Object(); 784 Object o882 = new Object(); 785 Object o883 = new Object(); 786 Object o884 = new Object(); 787 Object o885 = new Object(); 788 Object o886 = new Object(); 789 Object o887 = new Object(); 790 Object o888 = new Object(); 791 Object o889 = new Object(); 792 Object o890 = new Object(); 793 Object o891 = new Object(); 794 Object o892 = new Object(); 795 Object o893 = new Object(); 796 Object o894 = new Object(); 797 Object o895 = new Object(); 798 Object o896 = new Object(); 799 Object o897 = new Object(); 800 Object o898 = new Object(); 801 Object o899 = new Object(); 802 Object o900 = new Object(); 803 Object o901 = new Object(); 804 Object o902 = new Object(); 805 Object o903 = new Object(); 806 Object o904 = new Object(); 807 Object o905 = new Object(); 808 Object o906 = new Object(); 809 Object o907 = new Object(); 810 Object o908 = new Object(); 811 Object o909 = new Object(); 812 Object o910 = new Object(); 813 Object o911 = new Object(); 814 Object o912 = new Object(); 815 Object o913 = new Object(); 816 Object o914 = new Object(); 817 Object o915 = new Object(); 818 Object o916 = new Object(); 819 Object o917 = new Object(); 820 Object o918 = new Object(); 821 Object o919 = new Object(); 822 Object o920 = new Object(); 823 Object o921 = new Object(); 824 Object o922 = new Object(); 825 Object o923 = new Object(); 826 Object o924 = new Object(); 827 Object o925 = new Object(); 828 Object o926 = new Object(); 829 Object o927 = new Object(); 830 Object o928 = new Object(); 831 Object o929 = new Object(); 832 Object o930 = new Object(); 833 Object o931 = new Object(); 834 Object o932 = new Object(); 835 Object o933 = new Object(); 836 Object o934 = new Object(); 837 Object o935 = new Object(); 838 Object o936 = new Object(); 839 Object o937 = new Object(); 840 Object o938 = new Object(); 841 Object o939 = new Object(); 842 Object o940 = new Object(); 843 Object o941 = new Object(); 844 Object o942 = new Object(); 845 Object o943 = new Object(); 846 Object o944 = new Object(); 847 Object o945 = new Object(); 848 Object o946 = new Object(); 849 Object o947 = new Object(); 850 Object o948 = new Object(); 851 Object o949 = new Object(); 852 Object o950 = new Object(); 853 Object o951 = new Object(); 854 Object o952 = new Object(); 855 Object o953 = new Object(); 856 Object o954 = new Object(); 857 Object o955 = new Object(); 858 Object o956 = new Object(); 859 Object o957 = new Object(); 860 Object o958 = new Object(); 861 Object o959 = new Object(); 862 Object o960 = new Object(); 863 Object o961 = new Object(); 864 Object o962 = new Object(); 865 Object o963 = new Object(); 866 Object o964 = new Object(); 867 Object o965 = new Object(); 868 Object o966 = new Object(); 869 Object o967 = new Object(); 870 Object o968 = new Object(); 871 Object o969 = new Object(); 872 Object o970 = new Object(); 873 Object o971 = new Object(); 874 Object o972 = new Object(); 875 Object o973 = new Object(); 876 Object o974 = new Object(); 877 Object o975 = new Object(); 878 Object o976 = new Object(); 879 Object o977 = new Object(); 880 Object o978 = new Object(); 881 Object o979 = new Object(); 882 Object o980 = new Object(); 883 Object o981 = new Object(); 884 Object o982 = new Object(); 885 Object o983 = new Object(); 886 Object o984 = new Object(); 887 Object o985 = new Object(); 888 Object o986 = new Object(); 889 Object o987 = new Object(); 890 Object o988 = new Object(); 891 Object o989 = new Object(); 892 Object o990 = new Object(); 893 Object o991 = new Object(); 894 Object o992 = new Object(); 895 Object o993 = new Object(); 896 Object o994 = new Object(); 897 Object o995 = new Object(); 898 Object o996 = new Object(); 899 Object o997 = new Object(); 900 Object o998 = new Object(); 901 Object o999 = new Object(); 902 } 903 904 static class Deep0 {} 905 static class Deep1 extends Deep0 {} 906 static class Deep2 extends Deep1 {} 907 static class Deep3 extends Deep2 {} 908 static class Deep4 extends Deep3 {} 909 static class Deep5 extends Deep4 {} 910 static class Deep6 extends Deep5 {} 911 static class Deep7 extends Deep6 {} 912 static class Deep8 extends Deep7 {} 913 static class Deep9 extends Deep8 {} 914 static class Deep10 extends Deep9 {} 915 static class Deep11 extends Deep10 {} 916 static class Deep12 extends Deep11 {} 917 static class Deep13 extends Deep12 {} 918 static class Deep14 extends Deep13 {} 919 static class Deep15 extends Deep14 {} 920 static class Deep16 extends Deep15 {} 921 static class Deep17 extends Deep16 {} 922 static class Deep18 extends Deep17 {} 923 static class Deep19 extends Deep18 {} 924 static class Deep20 extends Deep19 {} 925 static class Deep21 extends Deep20 {} 926 static class Deep22 extends Deep21 {} 927 static class Deep23 extends Deep22 {} 928 static class Deep24 extends Deep23 {} 929 static class Deep25 extends Deep24 {} 930 static class Deep26 extends Deep25 {} 931 static class Deep27 extends Deep26 {} 932 static class Deep28 extends Deep27 {} 933 static class Deep29 extends Deep28 {} 934 static class Deep30 extends Deep29 {} 935 static class Deep31 extends Deep30 {} 936 static class Deep32 extends Deep31 {} 937 static class Deep33 extends Deep32 {} 938 static class Deep34 extends Deep33 {} 939 static class Deep35 extends Deep34 {} 940 static class Deep36 extends Deep35 {} 941 static class Deep37 extends Deep36 {} 942 static class Deep38 extends Deep37 {} 943 static class Deep39 extends Deep38 {} 944 static class Deep40 extends Deep39 {} 945 static class Deep41 extends Deep40 {} 946 static class Deep42 extends Deep41 {} 947 static class Deep43 extends Deep42 {} 948 static class Deep44 extends Deep43 {} 949 static class Deep45 extends Deep44 {} 950 static class Deep46 extends Deep45 {} 951 static class Deep47 extends Deep46 {} 952 static class Deep48 extends Deep47 {} 953 static class Deep49 extends Deep48 {} 954 static class Deep50 extends Deep49 {} 955 static class Deep51 extends Deep50 {} 956 static class Deep52 extends Deep51 {} 957 static class Deep53 extends Deep52 {} 958 static class Deep54 extends Deep53 {} 959 static class Deep55 extends Deep54 {} 960 static class Deep56 extends Deep55 {} 961 static class Deep57 extends Deep56 {} 962 static class Deep58 extends Deep57 {} 963 static class Deep59 extends Deep58 {} 964 static class Deep60 extends Deep59 {} 965 static class Deep61 extends Deep60 {} 966 static class Deep62 extends Deep61 {} 967 static class Deep63 extends Deep62 {} 968 static class Deep64 extends Deep63 {} 969 static class Deep65 extends Deep64 {} 970 static class Deep66 extends Deep65 {} 971 static class Deep67 extends Deep66 {} 972 static class Deep68 extends Deep67 {} 973 static class Deep69 extends Deep68 {} 974 static class Deep70 extends Deep69 {} 975 static class Deep71 extends Deep70 {} 976 static class Deep72 extends Deep71 {} 977 static class Deep73 extends Deep72 {} 978 static class Deep74 extends Deep73 {} 979 static class Deep75 extends Deep74 {} 980 static class Deep76 extends Deep75 {} 981 static class Deep77 extends Deep76 {} 982 static class Deep78 extends Deep77 {} 983 static class Deep79 extends Deep78 {} 984 static class Deep80 extends Deep79 {} 985 static class Deep81 extends Deep80 {} 986 static class Deep82 extends Deep81 {} 987 static class Deep83 extends Deep82 {} 988 static class Deep84 extends Deep83 {} 989 static class Deep85 extends Deep84 {} 990 static class Deep86 extends Deep85 {} 991 static class Deep87 extends Deep86 {} 992 static class Deep88 extends Deep87 {} 993 static class Deep89 extends Deep88 {} 994 static class Deep90 extends Deep89 {} 995 static class Deep91 extends Deep90 {} 996 static class Deep92 extends Deep91 {} 997 static class Deep93 extends Deep92 {} 998 static class Deep94 extends Deep93 {} 999 static class Deep95 extends Deep94 {} 1000 static class Deep96 extends Deep95 {} 1001 static class Deep97 extends Deep96 {} 1002 static class Deep98 extends Deep97 {} 1003 static class Deep99 extends Deep98 {} 1004 static class Deep100 extends Deep99 {} 1005 1006 static class DeepCloneable extends Deep100 implements Cloneable { 1007 public Object clone() throws CloneNotSupportedException { 1008 return super.clone(); 1009 } 1010 } 1011 1012 public void time_Object_clone(int reps) { 1013 try { 1014 CloneableObject o = new CloneableObject(); 1015 for (int rep = 0; rep < reps; ++rep) { 1016 o.clone(); 1017 } 1018 } catch (Exception e) { 1019 throw new AssertionError(e.getMessage()); 1020 } 1021 } 1022 1023 public void time_Object_manyFieldClone(int reps) { 1024 try { 1025 CloneableManyFieldObject o = new CloneableManyFieldObject(); 1026 for (int rep = 0; rep < reps; ++rep) { 1027 o.clone(); 1028 } 1029 } catch (Exception e) { 1030 throw new AssertionError(e.getMessage()); 1031 } 1032 } 1033 1034 public void time_Object_deepClone(int reps) { 1035 try { 1036 DeepCloneable o = new DeepCloneable(); 1037 for (int rep = 0; rep < reps; ++rep) { 1038 o.clone(); 1039 } 1040 } catch (Exception e) { 1041 throw new AssertionError(e.getMessage()); 1042 } 1043 } 1044 1045 public void time_Array_clone(int reps) { 1046 int[] o = new int[32]; 1047 for (int rep = 0; rep < reps; ++rep) { 1048 o.clone(); 1049 } 1050 } 1051 1052 public void time_ObjectArray_smallClone(int reps) { 1053 Object[] o = new Object[32]; 1054 for (int i = 0; i < o.length / 2; ++i) { 1055 o[i] = new Object(); 1056 } 1057 for (int rep = 0; rep < reps; ++rep) { 1058 o.clone(); 1059 } 1060 } 1061 1062 public void time_ObjectArray_largeClone(int reps) { 1063 Object[] o = new Object[2048]; 1064 for (int i = 0; i < o.length / 2; ++i) { 1065 o[i] = new Object(); 1066 } 1067 for (int rep = 0; rep < reps; ++rep) { 1068 o.clone(); 1069 } 1070 } 1071 } 1072