MessageConveyorPerftest xref

View Javadoc

    1   /*
    2    * Copyright (c) 2009 QOS.ch All rights reserved.
    3    *
    4    * Permission is hereby granted, free of charge, to any person obtaining a copy
    5    * of this software and associated documentation files (the "Software"), to deal
    6    * in the Software without restriction, including without limitation the rights
    7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    8    * copies of the Software, and to permit persons to whom the Software is
    9    * furnished to do so, subject to the following conditions:
    10   *
    11   * The above copyright notice and this permission notice shall be included in
    12   * all copies or substantial portions of the Software.
    13   *
    14   * THE SOFTWARE IS PROVIDED "AS  IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    20   * SOFTWARE.
    21   */
    22  package ch.qos.cal10n;
    23
    24  import java.util.Locale;
    25
    26  import org.junit.Ignore;
    27  import org.junit.Test;
    28
    29  import ch.qos.cal10n.sample.Colors;
    30
    31  // with caching ~300 nanos per translation
    32  // without caching 149'963 nanos or 149 micros per translation
    33
    34  public class MessageConveyorPerftest {
    35
    36    static int RUN_LENGTH = 100 *1000;
    37    public String s;
    38
    39    double loop() {
    40      long start = System.nanoTime();
    41
    42      IMessageConveyor mc = new MessageConveyor(Locale.ENGLISH);
    43      for(int i = 0; i < RUN_LENGTH; i++) {
    44        s = mc.getMessage(Colors.BLUE);
    45      }
    46      long end = System.nanoTime();
    47      return (end - start) * 1.0 / RUN_LENGTH;
    48    }
    49
    50    @Ignore
    51    @Test
    52    public void perfTest() {
    53      loop();
    54      loop();
    55
    56      System.out.println("avg = "+loop());
    57    }
    58  }