| /******************************************************************************* |
| * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Marc R. Hoffmann - initial API and implementation |
| * |
| *******************************************************************************/ |
| package org.jacoco.core.test.perf.targets; |
| |
| import java.util.concurrent.Callable; |
| |
| /** |
| * Plain method calls. |
| */ |
| public class Target01 implements Callable<Void> { |
| |
| @SuppressWarnings("unused") |
| private int c; |
| |
| // 4 ^ 0 = 1 times |
| public Void call() throws Exception { |
| m1(); |
| m1(); |
| m1(); |
| m1(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| return null; |
| } |
| |
| // 4 ^ 1 = 4 times |
| public void m1() { |
| m2(); |
| m2(); |
| m2(); |
| m2(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 2 == 16 times |
| public void m2() { |
| m3(); |
| m3(); |
| m3(); |
| m3(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 3 == 64 times |
| public void m3() { |
| m4(); |
| m4(); |
| m4(); |
| m4(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 4 == 256 times |
| public void m4() { |
| m5(); |
| m5(); |
| m5(); |
| m5(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 5 == 1,024 times |
| public void m5() { |
| m6(); |
| m6(); |
| m6(); |
| m6(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 6 == 4,096 times |
| public void m6() { |
| m7(); |
| m7(); |
| m7(); |
| m7(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 7 == 16,384 times |
| public void m7() { |
| m8(); |
| m8(); |
| m8(); |
| m8(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 8 == 65,536 times |
| public void m8() { |
| m9(); |
| m9(); |
| m9(); |
| m9(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 9 == 262,144 times |
| public void m9() { |
| m10(); |
| m10(); |
| m10(); |
| m10(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 10 == 1,048,576 times |
| public void m10() { |
| m11(); |
| m11(); |
| m11(); |
| m11(); |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| // 4 ^ 11 == 4,194,304 times |
| public void m11() { |
| c++; // some side effect, otherwise the JIT will remove the method |
| } |
| |
| } |