亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bogoperf.java

?? Java開發(fā)最新的日志記錄工具slf4j的源碼
?? JAVA
字號:
/*
 * Copyright (c) 2004-2008 QOS.ch
 * All rights reserved.
 * 
 * Permission is hereby granted, free  of charge, to any person obtaining
 * a  copy  of this  software  and  associated  documentation files  (the
 * "Software"), to  deal in  the Software without  restriction, including
 * without limitation  the rights to  use, copy, modify,  merge, publish,
 * distribute,  sublicense, and/or sell  copies of  the Software,  and to
 * permit persons to whom the Software  is furnished to do so, subject to
 * the following conditions:
 * 
 * The  above  copyright  notice  and  this permission  notice  shall  be
 * included in all copies or substantial portions of the Software.
 * 
 * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
 * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
 * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package org.slf4j.helpers;

import junit.framework.AssertionFailedError;

/**
 * BogoPerf is used to check that the time required to perform a certain
 * operation does not deteriorate over time. BogoPerf adjusts to the CPU speed
 * and capabilities of the host.
 * 
 * @author Ceki Gülcü
 * 
 */
public class BogoPerf {

  private static long NANOS_IN_ONE_SECOND = 1000 * 1000 * 1000;
  private static int INITIAL_N = 1000;
  private static int LAST_N = 100;
  private static int SLACK_FACTOR = 3;

  static {
    // let the JIT warm up
    computeBogoIPS(INITIAL_N);
    double bogo_ips = computeBogoIPS(INITIAL_N);
    System.out.println("Host runs at " + bogo_ips + " BIPS");
  }

  /**
   * Compute bogoInstructions per second
   * <p>
   * on a 3.2 Ghz Pentium D CPU (around 2007), we obtain about 9'000 bogoIPS.
   * 
   * @param N
   *                number of bogoInstructions to average over in order to
   *                compute the result
   * @return bogo Instructions Per Second
   */
  private static double computeBogoIPS(int N) {
    long begin = System.nanoTime();

    for (int i = 0; i < N; i++) {
      bogoInstruction();
    }
    long end = System.nanoTime();

    // duration
    double D = end - begin;
    // average duration per instruction
    double avgDPIS = D / N;
    // System.out.println(D + " nanos for " + N + " instructions");
    // System.out.println(avgD + " nanos per instruction");

    double bogoIPS = NANOS_IN_ONE_SECOND / avgDPIS;
    // System.out.println(bogoIPS + " bogoIPS");

    return bogoIPS;
  }

  private static void bogoInstruction() {
    // use our own random number generator, independent of the host JDK
    MyRandom myRandom = new MyRandom(100);
    int len = 150;
    int[] intArray = new int[len];
    for (int i = 0; i < len; i++) {
      intArray[i] = myRandom.nextInt();
    }
    // use our own sort algorithm, independent of the host JDK
    BubbleSort.sort(intArray);
  }

  /**
   * Computed the BogoIPS for this host CPU.
   * 
   * @return
   */
  public static double currentBIPS() {
    return computeBogoIPS(LAST_N);
  }

  static double min(double a, double b) {
    return (a <= b) ? a : b;
  }

  /**
   * Assertion used for values that <b>decrease</b> with faster CPUs, typically
   * the time (duration) needed to perform a task.
   * 
   * @param currentDuration
   * @param referenceDuration
   * @param referenceBIPS
   * @throws AssertionFailedError
   */
  public static void assertDuration(double currentDuration,
      long referenceDuration, double referenceBIPS) throws AssertionFailedError {
    double ajustedDuration = adjustExpectedDuration(referenceDuration,
        referenceBIPS);
    if (currentDuration > ajustedDuration * SLACK_FACTOR) {
      throw new AssertionFailedError("current duration " + currentDuration
          + " exceeded expected " + ajustedDuration + " (adjusted reference), "
          + referenceDuration + " (raw reference)");
    }
  }

  /**
   * Assertion used for values that <b>increase<b> with faster CPUs, typically
   * the number of operations accomplished per unit of time.
   * 
   * @param currentPerformance
   * @param referencePerformance
   * @param referenceBIPS
   * @throws AssertionFailedError
   */
  public static void assertPerformance(double currentPerformance,
      long referencePerformance, double referenceBIPS)
      throws AssertionFailedError {
    double ajustedPerf = adjustExpectedPerformance(referencePerformance,
        referenceBIPS);
    if (currentPerformance * SLACK_FACTOR < ajustedPerf) {
      throw new AssertionFailedError(currentPerformance + " below expected "
          + ajustedPerf + " (adjusted), " + referencePerformance + " (raw)");
    }
  }

  private static double adjustExpectedPerformance(long referenceDuration,
      double referenceBIPS) {
    double currentBIPS = currentBIPS();
    return referenceDuration * (currentBIPS / referenceBIPS);
  }

  private static double adjustExpectedDuration(long referenceDuration,
      double referenceBIPS) {
    double currentBIPS = currentBIPS();
    System.out.println("currentBIPS=" + currentBIPS + " BIPS");
    return referenceDuration * (referenceBIPS / currentBIPS);
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩综合一区二区| 成人精品免费网站| 成人开心网精品视频| 91高清视频免费看| 国产网站一区二区| 日本成人在线视频网站| 成人av动漫在线| 欧美精品一区二区三区蜜臀 | 久久久久久综合| 亚洲午夜一区二区三区| 国产高清久久久久| 日韩精品一区二区三区在线 | 欧美在线看片a免费观看| 国产午夜三级一区二区三| 午夜精品久久久久久久久久久 | 91精品国产一区二区三区香蕉| 国产精品亲子乱子伦xxxx裸| 老司机午夜精品| 69堂国产成人免费视频| 亚洲亚洲人成综合网络| av电影一区二区| 久久精品这里都是精品| 九九**精品视频免费播放| 7799精品视频| 日韩成人av影视| 欧美日韩精品三区| 亚洲午夜精品17c| 欧美性一二三区| 亚洲午夜在线电影| 欧美高清视频一二三区 | 91精品国产综合久久精品| 亚洲成人动漫精品| 欧美日韩国产乱码电影| 亚洲在线视频免费观看| 欧美少妇一区二区| 偷拍日韩校园综合在线| 日韩一区二区三区四区| 久久av老司机精品网站导航| 欧美一级精品大片| 精品午夜一区二区三区在线观看| 日韩欧美一区二区在线视频| 久久电影网电视剧免费观看| 精品噜噜噜噜久久久久久久久试看| 久久99国产精品久久| 久久综合狠狠综合| 成人av资源下载| 亚洲欧美色综合| 欧美日韩亚洲高清一区二区| 秋霞电影一区二区| 久久伊99综合婷婷久久伊| 国产一区二区在线观看免费| 亚洲国产激情av| 精品一区在线看| 日韩丝袜情趣美女图片| 看电影不卡的网站| 日本一区二区三区国色天香| 99麻豆久久久国产精品免费| 亚洲综合小说图片| 欧美一卡二卡在线观看| 国产ts人妖一区二区| 一区二区三区四区国产精品| 欧美一区二区三区公司| 懂色av噜噜一区二区三区av| 亚洲精品国产无天堂网2021| 欧美放荡的少妇| 国产成人精品在线看| 一区二区三区免费网站| 日韩欧美一区二区三区在线| 91小视频在线免费看| 日本少妇一区二区| 亚洲三级视频在线观看| 精品成人一区二区三区四区| 色婷婷综合久久久| 狠狠色综合色综合网络| 亚洲一二三四在线观看| 久久精品亚洲一区二区三区浴池| 在线观看一区二区精品视频| 国产一区二区不卡在线| 亚洲一二三四在线| 中文字幕一区二区三区四区不卡 | 毛片一区二区三区| 亚洲一区二区三区视频在线播放| 欧美精品一区二区蜜臀亚洲| 欧美视频完全免费看| 成人18视频在线播放| 精久久久久久久久久久| 亚洲国产一区二区在线播放| 国产日韩欧美精品电影三级在线| 欧美少妇一区二区| thepron国产精品| 国产精品一区在线| 蜜桃一区二区三区在线观看| 亚洲综合在线视频| 最新热久久免费视频| 久久久三级国产网站| 日韩一区二区免费视频| 欧美日高清视频| 欧美性色欧美a在线播放| 99re成人精品视频| 国产一区二区美女| 麻豆久久一区二区| 青青国产91久久久久久| 亚洲电影在线播放| 五月天亚洲精品| 亚洲成人av免费| 亚洲国产精品久久艾草纯爱| 亚洲视频一区二区在线| 最新国产成人在线观看| 国产精品视频一二| 亚洲欧洲日韩综合一区二区| 国产精品系列在线| 国产无一区二区| 欧美韩国日本综合| 国产精品视频九色porn| 国产精品国产三级国产| 国产精品青草综合久久久久99| 久久网这里都是精品| 久久久www免费人成精品| 久久综合国产精品| 中文av一区二区| 综合久久一区二区三区| 亚洲精品美国一| 亚洲国产日韩精品| 日日骚欧美日韩| 激情另类小说区图片区视频区| 精品伊人久久久久7777人| 国产精品亚洲午夜一区二区三区 | 精品一区二区国语对白| 国产一区二区三区久久悠悠色av| 国产乱码精品一区二区三| 国产福利视频一区二区三区| 成人精品视频网站| 欧美综合亚洲图片综合区| 337p亚洲精品色噜噜| 久久亚洲精华国产精华液| 久久人人爽人人爽| 综合在线观看色| 婷婷六月综合网| 国产盗摄一区二区三区| 99国产精品久久久久久久久久久| 91啪亚洲精品| 91精品久久久久久蜜臀| 久久久久久99久久久精品网站| 国产欧美日韩视频在线观看| 亚洲裸体xxx| 日韩av中文在线观看| 国产一区日韩二区欧美三区| 成人av第一页| 欧美剧情片在线观看| 久久久久久久久伊人| 亚洲一区二区三区中文字幕| 美腿丝袜亚洲综合| 99精品1区2区| 欧美一级日韩不卡播放免费| 日本一区二区不卡视频| 日日摸夜夜添夜夜添亚洲女人| 丁香亚洲综合激情啪啪综合| 色综合激情五月| 久久色在线观看| 午夜精品123| 99久久婷婷国产综合精品电影| 欧美日韩国产综合一区二区三区 | 色呦呦日韩精品| 久久综合狠狠综合久久激情| 亚洲成人自拍偷拍| 99久久精品免费看国产| 精品国产精品网麻豆系列| 夜夜嗨av一区二区三区网页 | 99精品在线观看视频| 精品国产乱码久久久久久图片| 亚洲欧洲99久久| 国产91在线|亚洲| 日韩一级黄色大片| 一区二区三区毛片| 福利一区二区在线观看| 欧美不卡在线视频| 午夜私人影院久久久久| 91浏览器打开| 欧美激情综合在线| 久久精品av麻豆的观看方式| 欧日韩精品视频| 中文字幕一区二区三区蜜月| 另类欧美日韩国产在线| 欧美日韩国产成人在线免费| 国产精品久久久久久久蜜臀| 极品少妇xxxx偷拍精品少妇| 69堂精品视频| 日韩成人免费电影| 欧美电影一区二区| 亚洲综合区在线| 色94色欧美sute亚洲13| 日韩美女精品在线| 99re这里只有精品首页| 亚洲激情av在线| 欧美日韩一级黄| 亚洲黄色av一区| 91高清视频免费看| 亚洲精品乱码久久久久久久久| 成人激情免费网站| 国产精品人成在线观看免费|