1 2 /* 3 * Copyright (c) 1996, 1997 by Doug Bell <dbell@shvn.com>. All Rights Reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27 28 // This file has been hacked to compile without the rest of the 29 // benchmark code. 30 31 class OperatorBenchmark { 32 getSampleCount()33 public int getSampleCount() { return 0; } getSampleMillis()34 public int getSampleMillis() { return 0; } 35 public boolean go; 36 public int useint[]; startTest()37 public void startTest () { } finishTest()38 public long finishTest () { return 0; } startTimer(boolean b)39 public void startTimer (boolean b) { } stopTimer(int a, int b)40 public void stopTimer (int a, int b) { } report(String s)41 public void report (String s) { } println(String s)42 public void println (String s) { } 43 getTestTime()44 public int getTestTime () { 45 return (int) (100 * getSampleCount() * getSampleMillis()) / 1000; 46 } 47 getRunningTime()48 public int getRunningTime () { 49 return (int) (1.1 * getTestTime()); 50 } 51 runTest()52 public long runTest () { 53 int dummy1 = 0, dummy2 = 0, dummy3 = 0; // occupy implicit index slots 54 int cnt, ii; 55 byte b1 = 1, b2 = 2, b3 = 3; 56 short s1 = 1, s2 = 2, s3 = 3; 57 int i1 = 1, i2 = 2, i3 = 3; 58 long l1 = 1, l2 = 2, l3 = 3; 59 float f1 = 1, f2 = 2, f3 = 3; 60 double d1 = 1, d2 = 2, d3 = 3; 61 62 startTest(); 63 64 println("--- byte operators, local vars"); 65 66 for (cnt = getSampleCount(); --cnt >= 0; ) { 67 startTimer(true); 68 for (ii = 0; go; ii++) 69 b1++; 70 stopTimer(cnt, ii); 71 } 72 report("byte++"); 73 74 for (cnt = getSampleCount(); --cnt >= 0; ) { 75 startTimer(true); 76 for (ii = 0; go; ii++) 77 b1 += b2; 78 stopTimer(cnt, ii); 79 } 80 report("byte += byte"); 81 82 for (cnt = getSampleCount(); --cnt >= 0; ) { 83 startTimer(true); 84 for (ii = 0; go; ii++) 85 b1 = (byte) (b2 + b3); 86 stopTimer(cnt, ii); 87 } 88 report("byte = byte + byte"); 89 90 for (cnt = getSampleCount(); --cnt >= 0; ) { 91 startTimer(true); 92 for (ii = 0; go; ii++) 93 b1 *= b2; 94 stopTimer(cnt, ii); 95 } 96 report("byte *= byte"); 97 98 for (cnt = getSampleCount(); --cnt >= 0; ) { 99 startTimer(true); 100 for (ii = 0; go; ii++) 101 b1 = (byte) (b2 * b3); 102 stopTimer(cnt, ii); 103 } 104 report("byte = byte * byte"); 105 106 for (cnt = getSampleCount(); --cnt >= 0; ) { 107 startTimer(true); 108 for (ii = 0; go; ii++) 109 b1 *= 2; 110 stopTimer(cnt, ii); 111 } 112 report("byte *= 2"); 113 114 for (cnt = getSampleCount(); --cnt >= 0; ) { 115 startTimer(true); 116 for (ii = 0; go; ii++) 117 b1 <<= 1; 118 stopTimer(cnt, ii); 119 } 120 report("byte <<= 1"); 121 122 for (cnt = getSampleCount(); --cnt >= 0; ) { 123 startTimer(true); 124 for (ii = 0; go; ii++) 125 b1 %= b2; 126 stopTimer(cnt, ii); 127 } 128 report("byte %= byte"); 129 130 for (cnt = getSampleCount(); --cnt >= 0; ) { 131 startTimer(true); 132 for (ii = 0; go; ii++) 133 b1 = (byte) (b2 % b3); 134 stopTimer(cnt, ii); 135 } 136 report("byte = byte % byte"); 137 138 for (cnt = getSampleCount(); --cnt >= 0; ) { 139 startTimer(true); 140 for (ii = 0; go; ii++) 141 b1 /= b2; 142 stopTimer(cnt, ii); 143 } 144 report("byte /= byte"); 145 146 for (cnt = getSampleCount(); --cnt >= 0; ) { 147 startTimer(true); 148 for (ii = 0; go; ii++) 149 b1 = (byte) (b2 / b3); 150 stopTimer(cnt, ii); 151 } 152 report("byte = byte / byte"); 153 154 for (cnt = getSampleCount(); --cnt >= 0; ) { 155 startTimer(true); 156 for (ii = 0; go; ii++) 157 b1 /= 2; 158 stopTimer(cnt, ii); 159 } 160 report("byte /= 2"); 161 162 for (cnt = getSampleCount(); --cnt >= 0; ) { 163 startTimer(true); 164 for (ii = 0; go; ii++) 165 b1 >>= 1; 166 stopTimer(cnt, ii); 167 } 168 report("byte >>= 1"); 169 170 for (cnt = getSampleCount(); --cnt >= 0; ) { 171 startTimer(true); 172 for (ii = 0; go; ii++) 173 b1 >>= i2; 174 stopTimer(cnt, ii); 175 } 176 report("byte >>= int"); 177 178 for (cnt = getSampleCount(); --cnt >= 0; ) { 179 startTimer(true); 180 for (ii = 0; go; ii++) 181 b1 = (byte) (b2 >> i3); 182 stopTimer(cnt, ii); 183 } 184 report("byte = byte >> int"); 185 186 for (cnt = getSampleCount(); --cnt >= 0; ) { 187 startTimer(true); 188 for (ii = 0; go; ii++) 189 b1 |= b2; 190 stopTimer(cnt, ii); 191 } 192 report("byte |= byte"); 193 194 for (cnt = getSampleCount(); --cnt >= 0; ) { 195 startTimer(true); 196 for (ii = 0; go; ii++) 197 b1 = (byte) (b2 | b3); 198 stopTimer(cnt, ii); 199 } 200 report("byte = byte | byte"); 201 202 for (cnt = getSampleCount(); --cnt >= 0; ) { 203 startTimer(true); 204 for (ii = 0; go; ii++) 205 b1 &= b2; 206 stopTimer(cnt, ii); 207 } 208 report("byte &= byte"); 209 210 for (cnt = getSampleCount(); --cnt >= 0; ) { 211 startTimer(true); 212 for (ii = 0; go; ii++) 213 b1 = (byte) (b2 & b3); 214 stopTimer(cnt, ii); 215 } 216 report("byte = byte & byte"); 217 218 for (cnt = getSampleCount(); --cnt >= 0; ) { 219 startTimer(true); 220 for (ii = 0; go; ii++) 221 b1 ^= b2; 222 stopTimer(cnt, ii); 223 } 224 report("byte ^= byte"); 225 226 for (cnt = getSampleCount(); --cnt >= 0; ) { 227 startTimer(true); 228 for (ii = 0; go; ii++) 229 b1 = (byte) (b2 ^ b3); 230 stopTimer(cnt, ii); 231 } 232 report("byte = byte ^ byte"); 233 234 235 println("--- short operators, local vars"); 236 237 for (cnt = getSampleCount(); --cnt >= 0; ) { 238 startTimer(true); 239 for (ii = 0; go; ii++) 240 s1++; 241 stopTimer(cnt, ii); 242 } 243 report("short++"); 244 245 for (cnt = getSampleCount(); --cnt >= 0; ) { 246 startTimer(true); 247 for (ii = 0; go; ii++) 248 s1 += s2; 249 stopTimer(cnt, ii); 250 } 251 report("short += short"); 252 253 for (cnt = getSampleCount(); --cnt >= 0; ) { 254 startTimer(true); 255 for (ii = 0; go; ii++) 256 s1 = (short) (s2 + s3); 257 stopTimer(cnt, ii); 258 } 259 report("short = short + short"); 260 261 for (cnt = getSampleCount(); --cnt >= 0; ) { 262 startTimer(true); 263 for (ii = 0; go; ii++) 264 s1 *= s2; 265 stopTimer(cnt, ii); 266 } 267 report("short *= short"); 268 269 for (cnt = getSampleCount(); --cnt >= 0; ) { 270 startTimer(true); 271 for (ii = 0; go; ii++) 272 s1 = (short) (s2 * s3); 273 stopTimer(cnt, ii); 274 } 275 report("short = short * short"); 276 277 for (cnt = getSampleCount(); --cnt >= 0; ) { 278 startTimer(true); 279 for (ii = 0; go; ii++) 280 s1 *= 2; 281 stopTimer(cnt, ii); 282 } 283 report("short *= 2"); 284 285 for (cnt = getSampleCount(); --cnt >= 0; ) { 286 startTimer(true); 287 for (ii = 0; go; ii++) 288 s1 <<= 1; 289 stopTimer(cnt, ii); 290 } 291 report("short <<= 1"); 292 293 for (cnt = getSampleCount(); --cnt >= 0; ) { 294 startTimer(true); 295 for (ii = 0; go; ii++) 296 s1 %= s2; 297 stopTimer(cnt, ii); 298 } 299 report("short %= short"); 300 301 for (cnt = getSampleCount(); --cnt >= 0; ) { 302 startTimer(true); 303 for (ii = 0; go; ii++) 304 s1 = (short) (s2 % s3); 305 stopTimer(cnt, ii); 306 } 307 report("short = short % short"); 308 309 for (cnt = getSampleCount(); --cnt >= 0; ) { 310 startTimer(true); 311 for (ii = 0; go; ii++) 312 s1 /= s2; 313 stopTimer(cnt, ii); 314 } 315 report("short /= short"); 316 317 for (cnt = getSampleCount(); --cnt >= 0; ) { 318 startTimer(true); 319 for (ii = 0; go; ii++) 320 s1 = (short) (s2 / s3); 321 stopTimer(cnt, ii); 322 } 323 report("short = short / short"); 324 325 for (cnt = getSampleCount(); --cnt >= 0; ) { 326 startTimer(true); 327 for (ii = 0; go; ii++) 328 s1 /= 2; 329 stopTimer(cnt, ii); 330 } 331 report("short /= 2"); 332 333 for (cnt = getSampleCount(); --cnt >= 0; ) { 334 startTimer(true); 335 for (ii = 0; go; ii++) 336 s1 >>= 1; 337 stopTimer(cnt, ii); 338 } 339 report("short >>= 1"); 340 341 for (cnt = getSampleCount(); --cnt >= 0; ) { 342 startTimer(true); 343 for (ii = 0; go; ii++) 344 s1 >>= i2; 345 stopTimer(cnt, ii); 346 } 347 report("short >>= int"); 348 349 for (cnt = getSampleCount(); --cnt >= 0; ) { 350 startTimer(true); 351 for (ii = 0; go; ii++) 352 s1 = (short) (s2 >> i3); 353 stopTimer(cnt, ii); 354 } 355 report("short = short >> int"); 356 357 for (cnt = getSampleCount(); --cnt >= 0; ) { 358 startTimer(true); 359 for (ii = 0; go; ii++) 360 s1 |= s2; 361 stopTimer(cnt, ii); 362 } 363 report("short |= short"); 364 365 for (cnt = getSampleCount(); --cnt >= 0; ) { 366 startTimer(true); 367 for (ii = 0; go; ii++) 368 s1 = (short) (s2 | s3); 369 stopTimer(cnt, ii); 370 } 371 report("short = short | short"); 372 373 for (cnt = getSampleCount(); --cnt >= 0; ) { 374 startTimer(true); 375 for (ii = 0; go; ii++) 376 s1 &= s2; 377 stopTimer(cnt, ii); 378 } 379 report("short &= short"); 380 381 for (cnt = getSampleCount(); --cnt >= 0; ) { 382 startTimer(true); 383 for (ii = 0; go; ii++) 384 s1 = (short) (s2 & s3); 385 stopTimer(cnt, ii); 386 } 387 report("short = short & short"); 388 389 for (cnt = getSampleCount(); --cnt >= 0; ) { 390 startTimer(true); 391 for (ii = 0; go; ii++) 392 s1 ^= s2; 393 stopTimer(cnt, ii); 394 } 395 report("short ^= short"); 396 397 for (cnt = getSampleCount(); --cnt >= 0; ) { 398 startTimer(true); 399 for (ii = 0; go; ii++) 400 s1 = (short) (s2 ^ s3); 401 stopTimer(cnt, ii); 402 } 403 report("short = short ^ short"); 404 405 406 println("--- int operators, local vars"); 407 408 for (cnt = getSampleCount(); --cnt >= 0; ) { 409 startTimer(true); 410 for (ii = 0; go; ii++) 411 i1++; 412 stopTimer(cnt, ii); 413 } 414 report("int++"); 415 416 for (cnt = getSampleCount(); --cnt >= 0; ) { 417 startTimer(true); 418 for (ii = 0; go; ii++) 419 i1 += i2; 420 stopTimer(cnt, ii); 421 } 422 report("int += int"); 423 424 for (cnt = getSampleCount(); --cnt >= 0; ) { 425 startTimer(true); 426 for (ii = 0; go; ii++) 427 i1 = (i2 + i3); 428 stopTimer(cnt, ii); 429 } 430 report("int = int + int"); 431 432 for (cnt = getSampleCount(); --cnt >= 0; ) { 433 startTimer(true); 434 for (ii = 0; go; ii++) 435 i1 *= i2; 436 stopTimer(cnt, ii); 437 } 438 report("int *= int"); 439 440 for (cnt = getSampleCount(); --cnt >= 0; ) { 441 startTimer(true); 442 for (ii = 0; go; ii++) 443 i1 = (i2 * i3); 444 stopTimer(cnt, ii); 445 } 446 report("int = int * int"); 447 448 for (cnt = getSampleCount(); --cnt >= 0; ) { 449 startTimer(true); 450 for (ii = 0; go; ii++) 451 i1 *= 2; 452 stopTimer(cnt, ii); 453 } 454 report("int *= 2"); 455 456 for (cnt = getSampleCount(); --cnt >= 0; ) { 457 startTimer(true); 458 for (ii = 0; go; ii++) 459 i1 <<= 1; 460 stopTimer(cnt, ii); 461 } 462 report("int <<= 1"); 463 464 for (cnt = getSampleCount(); --cnt >= 0; ) { 465 startTimer(true); 466 for (ii = 0; go; ii++) 467 i1 %= i2; 468 stopTimer(cnt, ii); 469 } 470 report("int %= int"); 471 472 for (cnt = getSampleCount(); --cnt >= 0; ) { 473 startTimer(true); 474 for (ii = 0; go; ii++) 475 i1 = (i2 % i3); 476 stopTimer(cnt, ii); 477 } 478 report("int = int % int"); 479 480 for (cnt = getSampleCount(); --cnt >= 0; ) { 481 startTimer(true); 482 for (ii = 0; go; ii++) 483 i1 /= i2; 484 stopTimer(cnt, ii); 485 } 486 report("int /= int"); 487 488 for (cnt = getSampleCount(); --cnt >= 0; ) { 489 startTimer(true); 490 for (ii = 0; go; ii++) 491 i1 = (i2 / i3); 492 stopTimer(cnt, ii); 493 } 494 report("int = int / int"); 495 496 for (cnt = getSampleCount(); --cnt >= 0; ) { 497 startTimer(true); 498 for (ii = 0; go; ii++) 499 i1 /= 2; 500 stopTimer(cnt, ii); 501 } 502 report("int /= 2"); 503 504 for (cnt = getSampleCount(); --cnt >= 0; ) { 505 startTimer(true); 506 for (ii = 0; go; ii++) 507 i1 >>= 1; 508 stopTimer(cnt, ii); 509 } 510 report("int >>= 1"); 511 512 for (cnt = getSampleCount(); --cnt >= 0; ) { 513 startTimer(true); 514 for (ii = 0; go; ii++) 515 i1 >>= i2; 516 stopTimer(cnt, ii); 517 } 518 report("int >>= int"); 519 520 for (cnt = getSampleCount(); --cnt >= 0; ) { 521 startTimer(true); 522 for (ii = 0; go; ii++) 523 i1 = i2 >> i3; 524 stopTimer(cnt, ii); 525 } 526 report("int = int >> int"); 527 528 for (cnt = getSampleCount(); --cnt >= 0; ) { 529 startTimer(true); 530 for (ii = 0; go; ii++) 531 i1 |= i2; 532 stopTimer(cnt, ii); 533 } 534 report("int |= int"); 535 536 for (cnt = getSampleCount(); --cnt >= 0; ) { 537 startTimer(true); 538 for (ii = 0; go; ii++) 539 i1 = i2 | i3; 540 stopTimer(cnt, ii); 541 } 542 report("int = int | int"); 543 544 for (cnt = getSampleCount(); --cnt >= 0; ) { 545 startTimer(true); 546 for (ii = 0; go; ii++) 547 i1 &= i2; 548 stopTimer(cnt, ii); 549 } 550 report("int &= int"); 551 552 for (cnt = getSampleCount(); --cnt >= 0; ) { 553 startTimer(true); 554 for (ii = 0; go; ii++) 555 i1 = i2 & i3; 556 stopTimer(cnt, ii); 557 } 558 report("int = int & int"); 559 560 for (cnt = getSampleCount(); --cnt >= 0; ) { 561 startTimer(true); 562 for (ii = 0; go; ii++) 563 i1 ^= i2; 564 stopTimer(cnt, ii); 565 } 566 report("int ^= int"); 567 568 for (cnt = getSampleCount(); --cnt >= 0; ) { 569 startTimer(true); 570 for (ii = 0; go; ii++) 571 i1 = i2 ^ i3; 572 stopTimer(cnt, ii); 573 } 574 report("int = int ^ int"); 575 576 577 println("--- long operators, local vars"); 578 579 for (cnt = getSampleCount(); --cnt >= 0; ) { 580 startTimer(true); 581 for (ii = 0; go; ii++) 582 l1++; 583 stopTimer(cnt, ii); 584 } 585 report("long++"); 586 587 for (cnt = getSampleCount(); --cnt >= 0; ) { 588 startTimer(true); 589 for (ii = 0; go; ii++) 590 l1 += l2; 591 stopTimer(cnt, ii); 592 } 593 report("long += long"); 594 595 for (cnt = getSampleCount(); --cnt >= 0; ) { 596 startTimer(true); 597 for (ii = 0; go; ii++) 598 l1 = (l2 + l3); 599 stopTimer(cnt, ii); 600 } 601 report("long = long + long"); 602 603 for (cnt = getSampleCount(); --cnt >= 0; ) { 604 startTimer(true); 605 for (ii = 0; go; ii++) 606 l1 *= l2; 607 stopTimer(cnt, ii); 608 } 609 report("long *= long"); 610 611 for (cnt = getSampleCount(); --cnt >= 0; ) { 612 startTimer(true); 613 for (ii = 0; go; ii++) 614 l1 = (l2 * l3); 615 stopTimer(cnt, ii); 616 } 617 report("long = long * long"); 618 619 for (cnt = getSampleCount(); --cnt >= 0; ) { 620 startTimer(true); 621 for (ii = 0; go; ii++) 622 l1 *= 2; 623 stopTimer(cnt, ii); 624 } 625 report("long *= 2"); 626 627 for (cnt = getSampleCount(); --cnt >= 0; ) { 628 startTimer(true); 629 for (ii = 0; go; ii++) 630 l1 <<= 1; 631 stopTimer(cnt, ii); 632 } 633 report("long <<= 1"); 634 635 for (cnt = getSampleCount(); --cnt >= 0; ) { 636 startTimer(true); 637 for (ii = 0; go; ii++) 638 l1 %= l2; 639 stopTimer(cnt, ii); 640 } 641 report("long %= long"); 642 643 for (cnt = getSampleCount(); --cnt >= 0; ) { 644 startTimer(true); 645 for (ii = 0; go; ii++) 646 l1 = (l2 % l3); 647 stopTimer(cnt, ii); 648 } 649 report("long = long % long"); 650 651 for (cnt = getSampleCount(); --cnt >= 0; ) { 652 startTimer(true); 653 for (ii = 0; go; ii++) 654 l1 /= l2; 655 stopTimer(cnt, ii); 656 } 657 report("long /= long"); 658 659 for (cnt = getSampleCount(); --cnt >= 0; ) { 660 startTimer(true); 661 for (ii = 0; go; ii++) 662 l1 = (l2 / l3); 663 stopTimer(cnt, ii); 664 } 665 report("long = long / long"); 666 667 for (cnt = getSampleCount(); --cnt >= 0; ) { 668 startTimer(true); 669 for (ii = 0; go; ii++) 670 l1 /= 2; 671 stopTimer(cnt, ii); 672 } 673 report("long /= 2"); 674 675 for (cnt = getSampleCount(); --cnt >= 0; ) { 676 startTimer(true); 677 for (ii = 0; go; ii++) 678 l1 >>= 1; 679 stopTimer(cnt, ii); 680 } 681 report("long >>= 1"); 682 683 for (cnt = getSampleCount(); --cnt >= 0; ) { 684 startTimer(true); 685 for (ii = 0; go; ii++) 686 l1 >>= i2; 687 stopTimer(cnt, ii); 688 } 689 report("long >>= int"); 690 691 for (cnt = getSampleCount(); --cnt >= 0; ) { 692 startTimer(true); 693 for (ii = 0; go; ii++) 694 l1 = l2 >> i3; 695 stopTimer(cnt, ii); 696 } 697 report("long = long >> int"); 698 699 for (cnt = getSampleCount(); --cnt >= 0; ) { 700 startTimer(true); 701 for (ii = 0; go; ii++) 702 l1 |= l2; 703 stopTimer(cnt, ii); 704 } 705 report("long |= long"); 706 707 for (cnt = getSampleCount(); --cnt >= 0; ) { 708 startTimer(true); 709 for (ii = 0; go; ii++) 710 l1 = l2 | l3; 711 stopTimer(cnt, ii); 712 } 713 report("long = long | long"); 714 715 for (cnt = getSampleCount(); --cnt >= 0; ) { 716 startTimer(true); 717 for (ii = 0; go; ii++) 718 l1 &= l2; 719 stopTimer(cnt, ii); 720 } 721 report("long &= long"); 722 723 for (cnt = getSampleCount(); --cnt >= 0; ) { 724 startTimer(true); 725 for (ii = 0; go; ii++) 726 l1 = l2 & l3; 727 stopTimer(cnt, ii); 728 } 729 report("long = long & long"); 730 731 for (cnt = getSampleCount(); --cnt >= 0; ) { 732 startTimer(true); 733 for (ii = 0; go; ii++) 734 l1 ^= l2; 735 stopTimer(cnt, ii); 736 } 737 report("long ^= long"); 738 739 for (cnt = getSampleCount(); --cnt >= 0; ) { 740 startTimer(true); 741 for (ii = 0; go; ii++) 742 l1 = l2 ^ l3; 743 stopTimer(cnt, ii); 744 } 745 report("long = long ^ long"); 746 747 748 println("--- float operators, local vars"); 749 750 for (cnt = getSampleCount(); --cnt >= 0; ) { 751 startTimer(true); 752 for (ii = 0; go; ii++) 753 f1 += f2; 754 stopTimer(cnt, ii); 755 } 756 report("float += float"); 757 758 for (cnt = getSampleCount(); --cnt >= 0; ) { 759 startTimer(true); 760 for (ii = 0; go; ii++) 761 f1 = (float) (f2 + f3); 762 stopTimer(cnt, ii); 763 } 764 report("float = float + float"); 765 766 for (cnt = getSampleCount(); --cnt >= 0; ) { 767 startTimer(true); 768 for (ii = 0; go; ii++) 769 f1 *= f2; 770 stopTimer(cnt, ii); 771 } 772 report("float *= float"); 773 774 for (cnt = getSampleCount(); --cnt >= 0; ) { 775 startTimer(true); 776 for (ii = 0; go; ii++) 777 f1 = (float) (f2 * f3); 778 stopTimer(cnt, ii); 779 } 780 report("float = float * float"); 781 782 for (cnt = getSampleCount(); --cnt >= 0; ) { 783 startTimer(true); 784 for (ii = 0; go; ii++) 785 f1 %= f2; 786 stopTimer(cnt, ii); 787 } 788 report("float %= float"); 789 790 for (cnt = getSampleCount(); --cnt >= 0; ) { 791 startTimer(true); 792 for (ii = 0; go; ii++) 793 f1 = (float) (f2 % f3); 794 stopTimer(cnt, ii); 795 } 796 report("float = float % float"); 797 798 for (cnt = getSampleCount(); --cnt >= 0; ) { 799 startTimer(true); 800 for (ii = 0; go; ii++) 801 f1 /= f2; 802 stopTimer(cnt, ii); 803 } 804 report("float /= float"); 805 806 for (cnt = getSampleCount(); --cnt >= 0; ) { 807 startTimer(true); 808 for (ii = 0; go; ii++) 809 f1 = (float) (f2 / f3); 810 stopTimer(cnt, ii); 811 } 812 report("float = float / float"); 813 814 815 println("--- double operators, local vars"); 816 817 for (cnt = getSampleCount(); --cnt >= 0; ) { 818 startTimer(true); 819 for (ii = 0; go; ii++) 820 d1 += d2; 821 stopTimer(cnt, ii); 822 } 823 report("double += double"); 824 825 for (cnt = getSampleCount(); --cnt >= 0; ) { 826 startTimer(true); 827 for (ii = 0; go; ii++) 828 d1 = (d2 + d3); 829 stopTimer(cnt, ii); 830 } 831 report("double = double + double"); 832 833 for (cnt = getSampleCount(); --cnt >= 0; ) { 834 startTimer(true); 835 for (ii = 0; go; ii++) 836 d1 *= d2; 837 stopTimer(cnt, ii); 838 } 839 report("double *= double"); 840 841 for (cnt = getSampleCount(); --cnt >= 0; ) { 842 startTimer(true); 843 for (ii = 0; go; ii++) 844 d1 = (d2 * d3); 845 stopTimer(cnt, ii); 846 } 847 report("double = double * double"); 848 849 for (cnt = getSampleCount(); --cnt >= 0; ) { 850 startTimer(true); 851 for (ii = 0; go; ii++) 852 d1 %= d2; 853 stopTimer(cnt, ii); 854 } 855 report("double %= double"); 856 857 for (cnt = getSampleCount(); --cnt >= 0; ) { 858 startTimer(true); 859 for (ii = 0; go; ii++) 860 d1 = (d2 % d3); 861 stopTimer(cnt, ii); 862 } 863 report("double = double % double"); 864 865 for (cnt = getSampleCount(); --cnt >= 0; ) { 866 startTimer(true); 867 for (ii = 0; go; ii++) 868 d1 /= d2; 869 stopTimer(cnt, ii); 870 } 871 report("double /= double"); 872 873 for (cnt = getSampleCount(); --cnt >= 0; ) { 874 startTimer(true); 875 for (ii = 0; go; ii++) 876 d1 = (d2 / d3); 877 stopTimer(cnt, ii); 878 } 879 report("double = double / double"); 880 881 useint[0] = dummy1; useint[1] = dummy2; useint[2] = dummy3; 882 return finishTest(); 883 } 884 } // class OperatorBenchmark 885 886 // EOF 887