Advertisement
Guest User

IndexOfBenchmark

a guest
Jan 27th, 2017
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. package com.analogideas.benchmark;
  2.  
  3.  
  4. import java.util.Random;
  5. import org.openjdk.jmh.annotations.Benchmark;
  6. import org.openjdk.jmh.annotations.Scope;
  7. import org.openjdk.jmh.annotations.State;
  8.  
  9. @State(Scope.Thread)
  10. public class IndexOfBenchmark {
  11.     static final int loops = 100000;
  12.     static final Random rng = new Random(2017);
  13.     static final String [] paths = new String[1000];
  14.     static {
  15.         for (int i = 0; i < paths.length; i++) {
  16.             paths[i] = ((i & 1) == 0) ? randomName() : randomNameWithSlash();
  17.         }
  18.     }
  19.  
  20.     private static String randomName() {
  21.         StringBuilder sb = new StringBuilder(32);
  22.         int len = 10 + rng.nextInt(22);
  23.         for (int i = 0; i < len; i++) {
  24.             sb.append((char) ('a' + rng.nextInt(26)));
  25.         }
  26.         return sb.toString();
  27.     }
  28.  
  29.     private static String randomNameWithSlash() {
  30.         StringBuilder sb = new StringBuilder(32);
  31.         int len1 = 5 + rng.nextInt(11);
  32.         int len2 = 4 + rng.nextInt(11);
  33.         for (int i = 0; i < len1; i++) {
  34.             sb.append((char) ('a' + rng.nextInt(26)));
  35.         }
  36.         sb.append('/');
  37.         for (int i = 0; i < len2; i++) {
  38.             sb.append((char) ('a' + rng.nextInt(26)));
  39.         }
  40.         return sb.toString();
  41.     }
  42.  
  43.     @Benchmark
  44.     public static int StringIndexOfChar() {
  45.         int acc = 0;
  46.         for (String s : paths) {
  47.             if (s.indexOf('/') > -1) {
  48.                 acc++;
  49.             }
  50.         }
  51.         return acc;
  52.     }
  53.  
  54.     @Benchmark
  55.     public static int StringIndexOfString() {
  56.         int acc = 0;
  57.         for (String s : paths) {
  58.             if (s.indexOf("/") > -1) {
  59.                 acc++;
  60.             }
  61.         }
  62.         return acc;
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement