1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2007 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker /* 18*795d594fSAndroid Build Coastguard Worker Initial: 19*795d594fSAndroid Build Coastguard Worker test001: 2039901us (4079ns per call) 20*795d594fSAndroid Build Coastguard Worker test049: 3346619us (6693ns per call) 21*795d594fSAndroid Build Coastguard Worker test099: 4687402us (9374ns per call) 22*795d594fSAndroid Build Coastguard Worker testInst001: 1327216us (2654ns per use) 23*795d594fSAndroid Build Coastguard Worker testInst049: 1326995us (2653ns per use) 24*795d594fSAndroid Build Coastguard Worker testInst099: 1327735us (2655ns per use) 25*795d594fSAndroid Build Coastguard Worker 26*795d594fSAndroid Build Coastguard Worker After refactoring cache code: 2871ns per use 27*795d594fSAndroid Build Coastguard Worker After re-refactoring cache code: 2797ns per use 28*795d594fSAndroid Build Coastguard Worker 29*795d594fSAndroid Build Coastguard Worker After de-inlining invoke-interface: 30*795d594fSAndroid Build Coastguard Worker test001: 2164873us (4329ns per call) 31*795d594fSAndroid Build Coastguard Worker test049: 3303884us (6607ns per call) 32*795d594fSAndroid Build Coastguard Worker test099: 4656718us (9313ns per call) 33*795d594fSAndroid Build Coastguard Worker testInst001: 1401731us (2803ns per use) 34*795d594fSAndroid Build Coastguard Worker testInst049: 1401120us (2802ns per use) 35*795d594fSAndroid Build Coastguard Worker testInst099: 1401298us (2802ns per use) 36*795d594fSAndroid Build Coastguard Worker 37*795d594fSAndroid Build Coastguard Worker After adding caching for invoke-interface: 38*795d594fSAndroid Build Coastguard Worker testIface001: 1909330us (3818ns per call) 39*795d594fSAndroid Build Coastguard Worker testIface049: 1905204us (3810ns per call) 40*795d594fSAndroid Build Coastguard Worker testIface099: 1899012us (3798ns per call) 41*795d594fSAndroid Build Coastguard Worker testVirt001: 1825001us (3650ns per call) 42*795d594fSAndroid Build Coastguard Worker testVirt049: 1826161us (3652ns per call) 43*795d594fSAndroid Build Coastguard Worker testVirt099: 1823915us (3647ns per call) 44*795d594fSAndroid Build Coastguard Worker testInst001: 1393963us (2787ns per use) 45*795d594fSAndroid Build Coastguard Worker testInst049: 1393163us (2786ns per use) 46*795d594fSAndroid Build Coastguard Worker testInst099: 1390496us (2780ns per use) 47*795d594fSAndroid Build Coastguard Worker 48*795d594fSAndroid Build Coastguard Worker After repeating each operation 16 times inside the inner loop: 49*795d594fSAndroid Build Coastguard Worker testIface001: 1429472us (2726ns per call) * 2382ns 50*795d594fSAndroid Build Coastguard Worker testIface049: 1427847us (2723ns per call) * 2396ns 51*795d594fSAndroid Build Coastguard Worker testIface099: 1423707us (2715ns per call) * 2387ns 52*795d594fSAndroid Build Coastguard Worker testVirt001: 1277790us (2437ns per call) * 2118ns 53*795d594fSAndroid Build Coastguard Worker testVirt049: 1280276us (2441ns per call) * 2119ns 54*795d594fSAndroid Build Coastguard Worker testVirt099: 1272640us (2427ns per call) * 2118ns 55*795d594fSAndroid Build Coastguard Worker testInst001: 844694us (1611ns per use) * 1396ns 56*795d594fSAndroid Build Coastguard Worker testInst049: 845619us (1612ns per use) * 1395ns 57*795d594fSAndroid Build Coastguard Worker testInst099: 845526us (1612ns per use) * 1394ns 58*795d594fSAndroid Build Coastguard Worker ('*' is with dx optimizations enabled) 59*795d594fSAndroid Build Coastguard Worker */ 60*795d594fSAndroid Build Coastguard Worker 61*795d594fSAndroid Build Coastguard Worker /** 62*795d594fSAndroid Build Coastguard Worker * Semi-generated class with many interfaces. 63*795d594fSAndroid Build Coastguard Worker */ 64*795d594fSAndroid Build Coastguard Worker public class ManyInterfaces 65*795d594fSAndroid Build Coastguard Worker implements 66*795d594fSAndroid Build Coastguard Worker Interface000, 67*795d594fSAndroid Build Coastguard Worker Interface001, 68*795d594fSAndroid Build Coastguard Worker Interface002, 69*795d594fSAndroid Build Coastguard Worker Interface003, 70*795d594fSAndroid Build Coastguard Worker Interface004, 71*795d594fSAndroid Build Coastguard Worker Interface005, 72*795d594fSAndroid Build Coastguard Worker Interface006, 73*795d594fSAndroid Build Coastguard Worker Interface007, 74*795d594fSAndroid Build Coastguard Worker Interface008, 75*795d594fSAndroid Build Coastguard Worker Interface009, 76*795d594fSAndroid Build Coastguard Worker Interface010, 77*795d594fSAndroid Build Coastguard Worker Interface011, 78*795d594fSAndroid Build Coastguard Worker Interface012, 79*795d594fSAndroid Build Coastguard Worker Interface013, 80*795d594fSAndroid Build Coastguard Worker Interface014, 81*795d594fSAndroid Build Coastguard Worker Interface015, 82*795d594fSAndroid Build Coastguard Worker Interface016, 83*795d594fSAndroid Build Coastguard Worker Interface017, 84*795d594fSAndroid Build Coastguard Worker Interface018, 85*795d594fSAndroid Build Coastguard Worker Interface019, 86*795d594fSAndroid Build Coastguard Worker Interface020, 87*795d594fSAndroid Build Coastguard Worker Interface021, 88*795d594fSAndroid Build Coastguard Worker Interface022, 89*795d594fSAndroid Build Coastguard Worker Interface023, 90*795d594fSAndroid Build Coastguard Worker Interface024, 91*795d594fSAndroid Build Coastguard Worker Interface025, 92*795d594fSAndroid Build Coastguard Worker Interface026, 93*795d594fSAndroid Build Coastguard Worker Interface027, 94*795d594fSAndroid Build Coastguard Worker Interface028, 95*795d594fSAndroid Build Coastguard Worker Interface029, 96*795d594fSAndroid Build Coastguard Worker Interface030, 97*795d594fSAndroid Build Coastguard Worker Interface031, 98*795d594fSAndroid Build Coastguard Worker Interface032, 99*795d594fSAndroid Build Coastguard Worker Interface033, 100*795d594fSAndroid Build Coastguard Worker Interface034, 101*795d594fSAndroid Build Coastguard Worker Interface035, 102*795d594fSAndroid Build Coastguard Worker Interface036, 103*795d594fSAndroid Build Coastguard Worker Interface037, 104*795d594fSAndroid Build Coastguard Worker Interface038, 105*795d594fSAndroid Build Coastguard Worker Interface039, 106*795d594fSAndroid Build Coastguard Worker Interface040, 107*795d594fSAndroid Build Coastguard Worker Interface041, 108*795d594fSAndroid Build Coastguard Worker Interface042, 109*795d594fSAndroid Build Coastguard Worker Interface043, 110*795d594fSAndroid Build Coastguard Worker Interface044, 111*795d594fSAndroid Build Coastguard Worker Interface045, 112*795d594fSAndroid Build Coastguard Worker Interface046, 113*795d594fSAndroid Build Coastguard Worker Interface047, 114*795d594fSAndroid Build Coastguard Worker Interface048, 115*795d594fSAndroid Build Coastguard Worker Interface049, 116*795d594fSAndroid Build Coastguard Worker Interface050, 117*795d594fSAndroid Build Coastguard Worker Interface051, 118*795d594fSAndroid Build Coastguard Worker Interface052, 119*795d594fSAndroid Build Coastguard Worker Interface053, 120*795d594fSAndroid Build Coastguard Worker Interface054, 121*795d594fSAndroid Build Coastguard Worker Interface055, 122*795d594fSAndroid Build Coastguard Worker Interface056, 123*795d594fSAndroid Build Coastguard Worker Interface057, 124*795d594fSAndroid Build Coastguard Worker Interface058, 125*795d594fSAndroid Build Coastguard Worker Interface059, 126*795d594fSAndroid Build Coastguard Worker Interface060, 127*795d594fSAndroid Build Coastguard Worker Interface061, 128*795d594fSAndroid Build Coastguard Worker Interface062, 129*795d594fSAndroid Build Coastguard Worker Interface063, 130*795d594fSAndroid Build Coastguard Worker Interface064, 131*795d594fSAndroid Build Coastguard Worker Interface065, 132*795d594fSAndroid Build Coastguard Worker Interface066, 133*795d594fSAndroid Build Coastguard Worker Interface067, 134*795d594fSAndroid Build Coastguard Worker Interface068, 135*795d594fSAndroid Build Coastguard Worker Interface069, 136*795d594fSAndroid Build Coastguard Worker Interface070, 137*795d594fSAndroid Build Coastguard Worker Interface071, 138*795d594fSAndroid Build Coastguard Worker Interface072, 139*795d594fSAndroid Build Coastguard Worker Interface073, 140*795d594fSAndroid Build Coastguard Worker Interface074, 141*795d594fSAndroid Build Coastguard Worker Interface075, 142*795d594fSAndroid Build Coastguard Worker Interface076, 143*795d594fSAndroid Build Coastguard Worker Interface077, 144*795d594fSAndroid Build Coastguard Worker Interface078, 145*795d594fSAndroid Build Coastguard Worker Interface079, 146*795d594fSAndroid Build Coastguard Worker Interface080, 147*795d594fSAndroid Build Coastguard Worker Interface081, 148*795d594fSAndroid Build Coastguard Worker Interface082, 149*795d594fSAndroid Build Coastguard Worker Interface083, 150*795d594fSAndroid Build Coastguard Worker Interface084, 151*795d594fSAndroid Build Coastguard Worker Interface085, 152*795d594fSAndroid Build Coastguard Worker Interface086, 153*795d594fSAndroid Build Coastguard Worker Interface087, 154*795d594fSAndroid Build Coastguard Worker Interface088, 155*795d594fSAndroid Build Coastguard Worker Interface089, 156*795d594fSAndroid Build Coastguard Worker Interface090, 157*795d594fSAndroid Build Coastguard Worker Interface091, 158*795d594fSAndroid Build Coastguard Worker Interface092, 159*795d594fSAndroid Build Coastguard Worker Interface093, 160*795d594fSAndroid Build Coastguard Worker Interface094, 161*795d594fSAndroid Build Coastguard Worker Interface095, 162*795d594fSAndroid Build Coastguard Worker Interface096, 163*795d594fSAndroid Build Coastguard Worker Interface097, 164*795d594fSAndroid Build Coastguard Worker Interface098, 165*795d594fSAndroid Build Coastguard Worker Interface099 166*795d594fSAndroid Build Coastguard Worker { 167*795d594fSAndroid Build Coastguard Worker /** whether to report timing information */ 168*795d594fSAndroid Build Coastguard Worker private static boolean timing = false; 169*795d594fSAndroid Build Coastguard Worker 170*795d594fSAndroid Build Coastguard Worker /** 171*795d594fSAndroid Build Coastguard Worker * Report on a section. 172*795d594fSAndroid Build Coastguard Worker */ report(String label, long start, long end, int iter, int rept)173*795d594fSAndroid Build Coastguard Worker private static void report(String label, long start, long end, int iter, 174*795d594fSAndroid Build Coastguard Worker int rept) { 175*795d594fSAndroid Build Coastguard Worker if (timing) { 176*795d594fSAndroid Build Coastguard Worker System.out.println(label + ": " + (end - start) / 1000 + "us" 177*795d594fSAndroid Build Coastguard Worker + " (" + (end - start) / (iter*rept) + "ns per call)"); 178*795d594fSAndroid Build Coastguard Worker } else { 179*795d594fSAndroid Build Coastguard Worker System.out.println(label + ": done"); 180*795d594fSAndroid Build Coastguard Worker } 181*795d594fSAndroid Build Coastguard Worker } 182*795d594fSAndroid Build Coastguard Worker 183*795d594fSAndroid Build Coastguard Worker /** 184*795d594fSAndroid Build Coastguard Worker * Run tests. 185*795d594fSAndroid Build Coastguard Worker * 186*795d594fSAndroid Build Coastguard Worker * @param timing whether to print out timing info 187*795d594fSAndroid Build Coastguard Worker */ run(boolean timing)188*795d594fSAndroid Build Coastguard Worker public static void run(boolean timing) { 189*795d594fSAndroid Build Coastguard Worker ManyInterfaces.timing = timing; 190*795d594fSAndroid Build Coastguard Worker ManyInterfaces obj = new ManyInterfaces(); 191*795d594fSAndroid Build Coastguard Worker Interface001 one; 192*795d594fSAndroid Build Coastguard Worker Interface049 forty; 193*795d594fSAndroid Build Coastguard Worker Interface099 ninety; 194*795d594fSAndroid Build Coastguard Worker long start, end; 195*795d594fSAndroid Build Coastguard Worker int iter = 32768; 196*795d594fSAndroid Build Coastguard Worker int rept = 16; 197*795d594fSAndroid Build Coastguard Worker int i; 198*795d594fSAndroid Build Coastguard Worker 199*795d594fSAndroid Build Coastguard Worker /* 200*795d594fSAndroid Build Coastguard Worker * Clear the heap. The various classes involved should already 201*795d594fSAndroid Build Coastguard Worker * be loaded and ready as a result of instantiating ManyInterfaces. 202*795d594fSAndroid Build Coastguard Worker */ 203*795d594fSAndroid Build Coastguard Worker Runtime.getRuntime().gc(); 204*795d594fSAndroid Build Coastguard Worker 205*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 206*795d594fSAndroid Build Coastguard Worker testIface001(obj, iter); 207*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 208*795d594fSAndroid Build Coastguard Worker report("testIface001", start, end, iter, rept); 209*795d594fSAndroid Build Coastguard Worker 210*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 211*795d594fSAndroid Build Coastguard Worker testIface049(obj, iter); 212*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 213*795d594fSAndroid Build Coastguard Worker report("testIface049", start, end, iter, rept); 214*795d594fSAndroid Build Coastguard Worker 215*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 216*795d594fSAndroid Build Coastguard Worker testIface099(obj, iter); 217*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 218*795d594fSAndroid Build Coastguard Worker report("testIface099", start, end, iter, rept); 219*795d594fSAndroid Build Coastguard Worker 220*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 221*795d594fSAndroid Build Coastguard Worker testVirt001(obj, iter); 222*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 223*795d594fSAndroid Build Coastguard Worker report("testVirt001", start, end, iter, rept); 224*795d594fSAndroid Build Coastguard Worker 225*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 226*795d594fSAndroid Build Coastguard Worker testVirt049(obj, iter); 227*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 228*795d594fSAndroid Build Coastguard Worker report("testVirt049", start, end, iter, rept); 229*795d594fSAndroid Build Coastguard Worker 230*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 231*795d594fSAndroid Build Coastguard Worker testVirt099(obj, iter); 232*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 233*795d594fSAndroid Build Coastguard Worker report("testVirt099", start, end, iter, rept); 234*795d594fSAndroid Build Coastguard Worker 235*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 236*795d594fSAndroid Build Coastguard Worker testInstance001(obj, iter); 237*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 238*795d594fSAndroid Build Coastguard Worker report("testInst001", start, end, iter, rept); 239*795d594fSAndroid Build Coastguard Worker 240*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 241*795d594fSAndroid Build Coastguard Worker testInstance049(obj, iter); 242*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 243*795d594fSAndroid Build Coastguard Worker report("testInst049", start, end, iter, rept); 244*795d594fSAndroid Build Coastguard Worker 245*795d594fSAndroid Build Coastguard Worker start = System.nanoTime(); 246*795d594fSAndroid Build Coastguard Worker testInstance099(obj, iter); 247*795d594fSAndroid Build Coastguard Worker end = System.nanoTime(); 248*795d594fSAndroid Build Coastguard Worker report("testInst099", start, end, iter, rept); 249*795d594fSAndroid Build Coastguard Worker } 250*795d594fSAndroid Build Coastguard Worker func001()251*795d594fSAndroid Build Coastguard Worker public int func001() { return 1; } func003()252*795d594fSAndroid Build Coastguard Worker public int func003() { return 3; } func005()253*795d594fSAndroid Build Coastguard Worker public int func005() { return 5; } func007()254*795d594fSAndroid Build Coastguard Worker public int func007() { return 7; } func009()255*795d594fSAndroid Build Coastguard Worker public int func009() { return 9; } func011()256*795d594fSAndroid Build Coastguard Worker public int func011() { return 11; } func013()257*795d594fSAndroid Build Coastguard Worker public int func013() { return 13; } func015()258*795d594fSAndroid Build Coastguard Worker public int func015() { return 15; } func017()259*795d594fSAndroid Build Coastguard Worker public int func017() { return 17; } func019()260*795d594fSAndroid Build Coastguard Worker public int func019() { return 19; } func021()261*795d594fSAndroid Build Coastguard Worker public int func021() { return 21; } func023()262*795d594fSAndroid Build Coastguard Worker public int func023() { return 23; } func025()263*795d594fSAndroid Build Coastguard Worker public int func025() { return 25; } func027()264*795d594fSAndroid Build Coastguard Worker public int func027() { return 27; } func029()265*795d594fSAndroid Build Coastguard Worker public int func029() { return 29; } func031()266*795d594fSAndroid Build Coastguard Worker public int func031() { return 31; } func033()267*795d594fSAndroid Build Coastguard Worker public int func033() { return 33; } func035()268*795d594fSAndroid Build Coastguard Worker public int func035() { return 35; } func037()269*795d594fSAndroid Build Coastguard Worker public int func037() { return 37; } func039()270*795d594fSAndroid Build Coastguard Worker public int func039() { return 39; } func041()271*795d594fSAndroid Build Coastguard Worker public int func041() { return 41; } func043()272*795d594fSAndroid Build Coastguard Worker public int func043() { return 43; } func045()273*795d594fSAndroid Build Coastguard Worker public int func045() { return 45; } func047()274*795d594fSAndroid Build Coastguard Worker public int func047() { return 47; } func049()275*795d594fSAndroid Build Coastguard Worker public int func049() { return 49; } func051()276*795d594fSAndroid Build Coastguard Worker public int func051() { return 51; } func053()277*795d594fSAndroid Build Coastguard Worker public int func053() { return 53; } func055()278*795d594fSAndroid Build Coastguard Worker public int func055() { return 55; } func057()279*795d594fSAndroid Build Coastguard Worker public int func057() { return 57; } func059()280*795d594fSAndroid Build Coastguard Worker public int func059() { return 59; } func061()281*795d594fSAndroid Build Coastguard Worker public int func061() { return 61; } func063()282*795d594fSAndroid Build Coastguard Worker public int func063() { return 63; } func065()283*795d594fSAndroid Build Coastguard Worker public int func065() { return 65; } func067()284*795d594fSAndroid Build Coastguard Worker public int func067() { return 67; } func069()285*795d594fSAndroid Build Coastguard Worker public int func069() { return 69; } func071()286*795d594fSAndroid Build Coastguard Worker public int func071() { return 71; } func073()287*795d594fSAndroid Build Coastguard Worker public int func073() { return 73; } func075()288*795d594fSAndroid Build Coastguard Worker public int func075() { return 75; } func077()289*795d594fSAndroid Build Coastguard Worker public int func077() { return 77; } func079()290*795d594fSAndroid Build Coastguard Worker public int func079() { return 79; } func081()291*795d594fSAndroid Build Coastguard Worker public int func081() { return 81; } func083()292*795d594fSAndroid Build Coastguard Worker public int func083() { return 83; } func085()293*795d594fSAndroid Build Coastguard Worker public int func085() { return 85; } func087()294*795d594fSAndroid Build Coastguard Worker public int func087() { return 87; } func089()295*795d594fSAndroid Build Coastguard Worker public int func089() { return 89; } func091()296*795d594fSAndroid Build Coastguard Worker public int func091() { return 91; } func093()297*795d594fSAndroid Build Coastguard Worker public int func093() { return 93; } func095()298*795d594fSAndroid Build Coastguard Worker public int func095() { return 95; } func097()299*795d594fSAndroid Build Coastguard Worker public int func097() { return 97; } func099()300*795d594fSAndroid Build Coastguard Worker public int func099() { return 99; } 301*795d594fSAndroid Build Coastguard Worker testIface001(Interface001 iface, int count)302*795d594fSAndroid Build Coastguard Worker static void testIface001(Interface001 iface, int count) { 303*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 304*795d594fSAndroid Build Coastguard Worker iface.func001(); iface.func001(); iface.func001(); iface.func001(); 305*795d594fSAndroid Build Coastguard Worker iface.func001(); iface.func001(); iface.func001(); iface.func001(); 306*795d594fSAndroid Build Coastguard Worker iface.func001(); iface.func001(); iface.func001(); iface.func001(); 307*795d594fSAndroid Build Coastguard Worker iface.func001(); iface.func001(); iface.func001(); iface.func001(); 308*795d594fSAndroid Build Coastguard Worker } 309*795d594fSAndroid Build Coastguard Worker } 310*795d594fSAndroid Build Coastguard Worker testIface049(Interface049 iface, int count)311*795d594fSAndroid Build Coastguard Worker static void testIface049(Interface049 iface, int count) { 312*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 313*795d594fSAndroid Build Coastguard Worker iface.func049(); iface.func049(); iface.func049(); iface.func049(); 314*795d594fSAndroid Build Coastguard Worker iface.func049(); iface.func049(); iface.func049(); iface.func049(); 315*795d594fSAndroid Build Coastguard Worker iface.func049(); iface.func049(); iface.func049(); iface.func049(); 316*795d594fSAndroid Build Coastguard Worker iface.func049(); iface.func049(); iface.func049(); iface.func049(); 317*795d594fSAndroid Build Coastguard Worker } 318*795d594fSAndroid Build Coastguard Worker } 319*795d594fSAndroid Build Coastguard Worker testIface099(Interface099 iface, int count)320*795d594fSAndroid Build Coastguard Worker static void testIface099(Interface099 iface, int count) { 321*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 322*795d594fSAndroid Build Coastguard Worker iface.func099(); iface.func099(); iface.func099(); iface.func099(); 323*795d594fSAndroid Build Coastguard Worker iface.func099(); iface.func099(); iface.func099(); iface.func099(); 324*795d594fSAndroid Build Coastguard Worker iface.func099(); iface.func099(); iface.func099(); iface.func099(); 325*795d594fSAndroid Build Coastguard Worker iface.func099(); iface.func099(); iface.func099(); iface.func099(); 326*795d594fSAndroid Build Coastguard Worker } 327*795d594fSAndroid Build Coastguard Worker } 328*795d594fSAndroid Build Coastguard Worker testVirt001(ManyInterfaces obj, int count)329*795d594fSAndroid Build Coastguard Worker static void testVirt001(ManyInterfaces obj, int count) { 330*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 331*795d594fSAndroid Build Coastguard Worker obj.func001(); obj.func001(); obj.func001(); obj.func001(); 332*795d594fSAndroid Build Coastguard Worker obj.func001(); obj.func001(); obj.func001(); obj.func001(); 333*795d594fSAndroid Build Coastguard Worker obj.func001(); obj.func001(); obj.func001(); obj.func001(); 334*795d594fSAndroid Build Coastguard Worker obj.func001(); obj.func001(); obj.func001(); obj.func001(); 335*795d594fSAndroid Build Coastguard Worker } 336*795d594fSAndroid Build Coastguard Worker } 337*795d594fSAndroid Build Coastguard Worker testVirt049(ManyInterfaces obj, int count)338*795d594fSAndroid Build Coastguard Worker static void testVirt049(ManyInterfaces obj, int count) { 339*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 340*795d594fSAndroid Build Coastguard Worker obj.func049(); obj.func049(); obj.func049(); obj.func049(); 341*795d594fSAndroid Build Coastguard Worker obj.func049(); obj.func049(); obj.func049(); obj.func049(); 342*795d594fSAndroid Build Coastguard Worker obj.func049(); obj.func049(); obj.func049(); obj.func049(); 343*795d594fSAndroid Build Coastguard Worker obj.func049(); obj.func049(); obj.func049(); obj.func049(); 344*795d594fSAndroid Build Coastguard Worker } 345*795d594fSAndroid Build Coastguard Worker } 346*795d594fSAndroid Build Coastguard Worker testVirt099(ManyInterfaces obj, int count)347*795d594fSAndroid Build Coastguard Worker static void testVirt099(ManyInterfaces obj, int count) { 348*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 349*795d594fSAndroid Build Coastguard Worker obj.func099(); obj.func099(); obj.func099(); obj.func099(); 350*795d594fSAndroid Build Coastguard Worker obj.func099(); obj.func099(); obj.func099(); obj.func099(); 351*795d594fSAndroid Build Coastguard Worker obj.func099(); obj.func099(); obj.func099(); obj.func099(); 352*795d594fSAndroid Build Coastguard Worker obj.func099(); obj.func099(); obj.func099(); obj.func099(); 353*795d594fSAndroid Build Coastguard Worker } 354*795d594fSAndroid Build Coastguard Worker } 355*795d594fSAndroid Build Coastguard Worker testInstance001(Object obj, int count)356*795d594fSAndroid Build Coastguard Worker static void testInstance001(Object obj, int count) { 357*795d594fSAndroid Build Coastguard Worker if (!(obj instanceof Interface001)) 358*795d594fSAndroid Build Coastguard Worker System.out.println("BAD"); 359*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 360*795d594fSAndroid Build Coastguard Worker boolean is; 361*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 362*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 363*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 364*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 365*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 366*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 367*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 368*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 369*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 370*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 371*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 372*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 373*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 374*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 375*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 376*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface001; 377*795d594fSAndroid Build Coastguard Worker } 378*795d594fSAndroid Build Coastguard Worker } 379*795d594fSAndroid Build Coastguard Worker testInstance049(Object obj, int count)380*795d594fSAndroid Build Coastguard Worker static void testInstance049(Object obj, int count) { 381*795d594fSAndroid Build Coastguard Worker if (!(obj instanceof Interface049)) 382*795d594fSAndroid Build Coastguard Worker System.out.println("BAD"); 383*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 384*795d594fSAndroid Build Coastguard Worker boolean is; 385*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 386*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 387*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 388*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 389*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 390*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 391*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 392*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 393*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 394*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 395*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 396*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 397*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 398*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 399*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 400*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface049; 401*795d594fSAndroid Build Coastguard Worker } 402*795d594fSAndroid Build Coastguard Worker } 403*795d594fSAndroid Build Coastguard Worker testInstance099(Object obj, int count)404*795d594fSAndroid Build Coastguard Worker static void testInstance099(Object obj, int count) { 405*795d594fSAndroid Build Coastguard Worker if (!(obj instanceof Interface099)) 406*795d594fSAndroid Build Coastguard Worker System.out.println("BAD"); 407*795d594fSAndroid Build Coastguard Worker while (count-- != 0) { 408*795d594fSAndroid Build Coastguard Worker boolean is; 409*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 410*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 411*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 412*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 413*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 414*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 415*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 416*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 417*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 418*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 419*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 420*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 421*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 422*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 423*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 424*795d594fSAndroid Build Coastguard Worker is = obj instanceof Interface099; 425*795d594fSAndroid Build Coastguard Worker } 426*795d594fSAndroid Build Coastguard Worker } 427*795d594fSAndroid Build Coastguard Worker } 428