Advertisement
Guest User

JMH: replace vs tacc

a guest
May 14th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. package questionresolver;
  2.  
  3. import org.openjdk.jmh.annotations.*;
  4. import org.openjdk.jmh.runner.Runner;
  5. import org.openjdk.jmh.runner.RunnerException;
  6. import org.openjdk.jmh.runner.options.Options;
  7. import org.openjdk.jmh.runner.options.OptionsBuilder;
  8. import java.util.concurrent.TimeUnit;
  9.  
  10. @State(Scope.Thread)
  11. @BenchmarkMode(Mode.AverageTime)
  12. @OutputTimeUnit(TimeUnit.NANOSECONDS)
  13. public class QuestionResolver {
  14.     public static final char COLOR_CHAR = '\u00A7';
  15.     public static final String COLORIZE_ME
  16.             = "&7Lorem &eipsum &rdolor &nsit &kamet, &aconsectetur &dadipiscing "
  17.             + "&4elit. &7Aliquam &9cursus, &bmetus &3ut &ffaucibus &dconsectetur, "
  18.             + "&5lectus &3enim &0porttitor &1justo, &oquis &2condimentum &adui "
  19.             + "&marcu &8et &dex. &pSed &6mi &9mi, &3consequat &feu &rsagittis "
  20.             + "&2at, &9interdum &beget &7dolor. &kSed &lmollis &cipsum &9a "
  21.             + "&4gravida &2laoreet. &8Ut &bligula &drisus, &1dignissim &8at "
  22.             + "&agravida &4id, &7blandit &8eget &9metus... &r& other words";
  23.     public static final String NO_COLORS
  24.             = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
  25.             + "Aliquam cursus, metus ut faucibus consectetur, lectus enim "
  26.             + "porttitor justo, quis condimentum dui arcu et ex. Sed mi mi, "
  27.             + "consequat eu sagittis at, interdum eget dolor. Sed mollis ipsum "
  28.             + "a gravida laoreet. Ut ligula risus, dignissim at gravida id, "
  29.             + "blandit eget metus.";
  30.    
  31.     @Benchmark
  32.     @OperationsPerInvocation(1)
  33.     public String stringReplace() {
  34.         return QuestionResolver.COLORIZE_ME.replace('&', QuestionResolver.COLOR_CHAR);
  35.     }
  36.    
  37.     @Benchmark
  38.     @OperationsPerInvocation(1)
  39.     public String tacc() {
  40.         return QuestionResolver.translateAlternateColorCodes('&', QuestionResolver.COLORIZE_ME);
  41.     }
  42.    
  43.     @Benchmark
  44.     @OperationsPerInvocation(1)
  45.     public String NCstringReplace() {
  46.         return QuestionResolver.NO_COLORS.replace('&', QuestionResolver.COLOR_CHAR);
  47.     }
  48.    
  49.     @Benchmark
  50.     @OperationsPerInvocation(1)
  51.     public String NCtacc() {
  52.         return QuestionResolver.translateAlternateColorCodes('&', QuestionResolver.NO_COLORS);
  53.     }
  54.    
  55.     public static String translateAlternateColorCodes(char altColorChar, String textToTranslate) {
  56.         char[] b = textToTranslate.toCharArray();
  57.         for (int i = 0; i < b.length - 1; i++) {
  58.             if (b[i] == altColorChar && "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[i + 1]) > -1) {
  59.                 b[i] = QuestionResolver.COLOR_CHAR;
  60.                 b[i + 1] = Character.toLowerCase(b[i + 1]);
  61.             }
  62.         }
  63.         return new String(b);
  64.     }
  65.    
  66.     public static void main(String[] args) throws RunnerException {
  67.         Options opt = new OptionsBuilder()
  68.                 .include(QuestionResolver.class.getSimpleName())
  69.                 .warmupIterations(10)
  70.                 .measurementIterations(50)
  71.                 .forks(1)
  72.                 .build();
  73.  
  74.         new Runner(opt).run();
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement