1e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/******************************************************************************* 234cd880f4e52a32b9f88ed4ea687b8f3f892395bEvgeny Mandrikov * Copyright (c) 2009, 2017 Mountainminds GmbH & Co. KG and Contributors 3e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * All rights reserved. This program and the accompanying materials 4e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * are made available under the terms of the Eclipse Public License v1.0 5e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * which accompanies this distribution, and is available at 6e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * http://www.eclipse.org/legal/epl-v10.html 7e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 8e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Contributors: 9e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Marc R. Hoffmann - initial API and implementation 10e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 11e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov *******************************************************************************/ 12e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpackage org.jacoco.core.test.perf.targets; 13e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 14ac07e252571819685d3f74cb69c90c23abd340a0Marc R. Hoffmannimport java.util.concurrent.Callable; 15ac07e252571819685d3f74cb69c90c23abd340a0Marc R. Hoffmann 16e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/** 17e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Plain method calls. 18e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov */ 19ac07e252571819685d3f74cb69c90c23abd340a0Marc R. Hoffmannpublic class Target01 implements Callable<Void> { 20e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 21e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @SuppressWarnings("unused") 22e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov private int c; 23e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 24e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 0 = 1 times 25ac07e252571819685d3f74cb69c90c23abd340a0Marc R. Hoffmann public Void call() throws Exception { 26e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m1(); 27e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m1(); 28e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m1(); 29e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m1(); 30e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 31ac07e252571819685d3f74cb69c90c23abd340a0Marc R. Hoffmann return null; 32e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 33e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 34e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 1 = 4 times 35e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m1() { 36e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m2(); 37e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m2(); 38e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m2(); 39e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m2(); 40e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 41e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 42e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 43e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 2 == 16 times 44e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m2() { 45e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m3(); 46e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m3(); 47e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m3(); 48e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m3(); 49e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 50e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 51e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 52e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 3 == 64 times 53e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m3() { 54e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m4(); 55e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m4(); 56e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m4(); 57e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m4(); 58e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 59e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 60e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 61e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 4 == 256 times 62e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m4() { 63e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m5(); 64e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m5(); 65e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m5(); 66e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m5(); 67e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 68e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 69e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 70e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 5 == 1,024 times 71e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m5() { 72e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m6(); 73e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m6(); 74e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m6(); 75e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m6(); 76e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 77e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 78e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 79e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 6 == 4,096 times 80e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m6() { 81e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m7(); 82e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m7(); 83e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m7(); 84e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m7(); 85e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 86e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 87e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 88e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 7 == 16,384 times 89e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m7() { 90e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m8(); 91e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m8(); 92e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m8(); 93e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m8(); 94e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 95e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 96e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 97e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 8 == 65,536 times 98e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m8() { 99e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m9(); 100e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m9(); 101e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m9(); 102e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m9(); 103e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 104e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 105e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 106e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 9 == 262,144 times 107e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m9() { 108e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m10(); 109e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m10(); 110e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m10(); 111e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m10(); 112e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 113e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 114e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 115e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 10 == 1,048,576 times 116e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m10() { 117e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m11(); 118e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m11(); 119e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m11(); 120e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov m11(); 121e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 122e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 123e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 124e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov // 4 ^ 11 == 4,194,304 times 125e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void m11() { 126e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov c++; // some side effect, otherwise the JIT will remove the method 127e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 128e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 129e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov} 130