/* * Copyright (c) 1996, 1997 by Doug Bell . All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ // This file has been hacked to compile without the rest of the // benchmark code. class OperatorBenchmark { public int getSampleCount() { return 0; } public int getSampleMillis() { return 0; } public boolean go; public int useint[]; public void startTest () { } public long finishTest () { return 0; } public void startTimer (boolean b) { } public void stopTimer (int a, int b) { } public void report (String s) { } public void println (String s) { } public int getTestTime () { return (int) (100 * getSampleCount() * getSampleMillis()) / 1000; } public int getRunningTime () { return (int) (1.1 * getTestTime()); } public long runTest () { int dummy1 = 0, dummy2 = 0, dummy3 = 0; // occupy implicit index slots int cnt, ii; byte b1 = 1, b2 = 2, b3 = 3; short s1 = 1, s2 = 2, s3 = 3; int i1 = 1, i2 = 2, i3 = 3; long l1 = 1, l2 = 2, l3 = 3; float f1 = 1, f2 = 2, f3 = 3; double d1 = 1, d2 = 2, d3 = 3; startTest(); println("--- byte operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1++; stopTimer(cnt, ii); } report("byte++"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 += b2; stopTimer(cnt, ii); } report("byte += byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 + b3); stopTimer(cnt, ii); } report("byte = byte + byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 *= b2; stopTimer(cnt, ii); } report("byte *= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 * b3); stopTimer(cnt, ii); } report("byte = byte * byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 *= 2; stopTimer(cnt, ii); } report("byte *= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 <<= 1; stopTimer(cnt, ii); } report("byte <<= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 %= b2; stopTimer(cnt, ii); } report("byte %= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 % b3); stopTimer(cnt, ii); } report("byte = byte % byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 /= b2; stopTimer(cnt, ii); } report("byte /= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 / b3); stopTimer(cnt, ii); } report("byte = byte / byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 /= 2; stopTimer(cnt, ii); } report("byte /= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 >>= 1; stopTimer(cnt, ii); } report("byte >>= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 >>= i2; stopTimer(cnt, ii); } report("byte >>= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 >> i3); stopTimer(cnt, ii); } report("byte = byte >> int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 |= b2; stopTimer(cnt, ii); } report("byte |= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 | b3); stopTimer(cnt, ii); } report("byte = byte | byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 &= b2; stopTimer(cnt, ii); } report("byte &= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 & b3); stopTimer(cnt, ii); } report("byte = byte & byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 ^= b2; stopTimer(cnt, ii); } report("byte ^= byte"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) b1 = (byte) (b2 ^ b3); stopTimer(cnt, ii); } report("byte = byte ^ byte"); println("--- short operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1++; stopTimer(cnt, ii); } report("short++"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 += s2; stopTimer(cnt, ii); } report("short += short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 + s3); stopTimer(cnt, ii); } report("short = short + short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 *= s2; stopTimer(cnt, ii); } report("short *= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 * s3); stopTimer(cnt, ii); } report("short = short * short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 *= 2; stopTimer(cnt, ii); } report("short *= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 <<= 1; stopTimer(cnt, ii); } report("short <<= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 %= s2; stopTimer(cnt, ii); } report("short %= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 % s3); stopTimer(cnt, ii); } report("short = short % short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 /= s2; stopTimer(cnt, ii); } report("short /= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 / s3); stopTimer(cnt, ii); } report("short = short / short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 /= 2; stopTimer(cnt, ii); } report("short /= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 >>= 1; stopTimer(cnt, ii); } report("short >>= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 >>= i2; stopTimer(cnt, ii); } report("short >>= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 >> i3); stopTimer(cnt, ii); } report("short = short >> int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 |= s2; stopTimer(cnt, ii); } report("short |= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 | s3); stopTimer(cnt, ii); } report("short = short | short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 &= s2; stopTimer(cnt, ii); } report("short &= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 & s3); stopTimer(cnt, ii); } report("short = short & short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 ^= s2; stopTimer(cnt, ii); } report("short ^= short"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) s1 = (short) (s2 ^ s3); stopTimer(cnt, ii); } report("short = short ^ short"); println("--- int operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1++; stopTimer(cnt, ii); } report("int++"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 += i2; stopTimer(cnt, ii); } report("int += int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = (i2 + i3); stopTimer(cnt, ii); } report("int = int + int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 *= i2; stopTimer(cnt, ii); } report("int *= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = (i2 * i3); stopTimer(cnt, ii); } report("int = int * int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 *= 2; stopTimer(cnt, ii); } report("int *= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 <<= 1; stopTimer(cnt, ii); } report("int <<= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 %= i2; stopTimer(cnt, ii); } report("int %= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = (i2 % i3); stopTimer(cnt, ii); } report("int = int % int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 /= i2; stopTimer(cnt, ii); } report("int /= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = (i2 / i3); stopTimer(cnt, ii); } report("int = int / int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 /= 2; stopTimer(cnt, ii); } report("int /= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 >>= 1; stopTimer(cnt, ii); } report("int >>= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 >>= i2; stopTimer(cnt, ii); } report("int >>= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = i2 >> i3; stopTimer(cnt, ii); } report("int = int >> int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 |= i2; stopTimer(cnt, ii); } report("int |= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = i2 | i3; stopTimer(cnt, ii); } report("int = int | int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 &= i2; stopTimer(cnt, ii); } report("int &= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = i2 & i3; stopTimer(cnt, ii); } report("int = int & int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 ^= i2; stopTimer(cnt, ii); } report("int ^= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) i1 = i2 ^ i3; stopTimer(cnt, ii); } report("int = int ^ int"); println("--- long operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1++; stopTimer(cnt, ii); } report("long++"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 += l2; stopTimer(cnt, ii); } report("long += long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = (l2 + l3); stopTimer(cnt, ii); } report("long = long + long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 *= l2; stopTimer(cnt, ii); } report("long *= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = (l2 * l3); stopTimer(cnt, ii); } report("long = long * long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 *= 2; stopTimer(cnt, ii); } report("long *= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 <<= 1; stopTimer(cnt, ii); } report("long <<= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 %= l2; stopTimer(cnt, ii); } report("long %= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = (l2 % l3); stopTimer(cnt, ii); } report("long = long % long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 /= l2; stopTimer(cnt, ii); } report("long /= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = (l2 / l3); stopTimer(cnt, ii); } report("long = long / long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 /= 2; stopTimer(cnt, ii); } report("long /= 2"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 >>= 1; stopTimer(cnt, ii); } report("long >>= 1"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 >>= i2; stopTimer(cnt, ii); } report("long >>= int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = l2 >> i3; stopTimer(cnt, ii); } report("long = long >> int"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 |= l2; stopTimer(cnt, ii); } report("long |= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = l2 | l3; stopTimer(cnt, ii); } report("long = long | long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 &= l2; stopTimer(cnt, ii); } report("long &= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = l2 & l3; stopTimer(cnt, ii); } report("long = long & long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 ^= l2; stopTimer(cnt, ii); } report("long ^= long"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) l1 = l2 ^ l3; stopTimer(cnt, ii); } report("long = long ^ long"); println("--- float operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 += f2; stopTimer(cnt, ii); } report("float += float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 = (float) (f2 + f3); stopTimer(cnt, ii); } report("float = float + float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 *= f2; stopTimer(cnt, ii); } report("float *= float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 = (float) (f2 * f3); stopTimer(cnt, ii); } report("float = float * float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 %= f2; stopTimer(cnt, ii); } report("float %= float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 = (float) (f2 % f3); stopTimer(cnt, ii); } report("float = float % float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 /= f2; stopTimer(cnt, ii); } report("float /= float"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) f1 = (float) (f2 / f3); stopTimer(cnt, ii); } report("float = float / float"); println("--- double operators, local vars"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 += d2; stopTimer(cnt, ii); } report("double += double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 = (d2 + d3); stopTimer(cnt, ii); } report("double = double + double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 *= d2; stopTimer(cnt, ii); } report("double *= double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 = (d2 * d3); stopTimer(cnt, ii); } report("double = double * double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 %= d2; stopTimer(cnt, ii); } report("double %= double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 = (d2 % d3); stopTimer(cnt, ii); } report("double = double % double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 /= d2; stopTimer(cnt, ii); } report("double /= double"); for (cnt = getSampleCount(); --cnt >= 0; ) { startTimer(true); for (ii = 0; go; ii++) d1 = (d2 / d3); stopTimer(cnt, ii); } report("double = double / double"); useint[0] = dummy1; useint[1] = dummy2; useint[2] = dummy3; return finishTest(); } } // class OperatorBenchmark // EOF