package hprof;

/**
 * CPU使用率プロファイル用サンプル
 */
public class HprofCpu {

	/**
	 * アプリケーション
	 * @param args 引数
	 */
	public static void main(String[] args) {
		HprofCpu example = new HprofCpu();
		example.execute();
	}

	private static final int COUNT1 = 1024;
	private static final int COUNT2 = 65535;

	private void execute() {
		/* 短い処理時間を大量に */
		for (int i = 0; i < COUNT1; i++) {
			shortProcessingTime(); 
		}
		
		/* 長い処理時間を1回だけ */
		longProcessingTime();
	}

	/**
	 * 短時間で終わるメソッド
	 */
	private void shortProcessingTime() {
		double d = 1.0D;

		for (int i = 0; i < COUNT2; i++) {
			d *= 3;
			d /= 3;
		}
	}

	/**
	 * 長時間かかるメソッド
	 */
	private void longProcessingTime() {
		double d = 1.0D;
		
		for (int i = 0; i < COUNT1; i++) {
			for (int j = 0; j < COUNT2; j++) {
				d *= 3;
				d /= 3;
			}
		}
	}

}
