Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.analogideas.benchmark;
- import java.util.Random;
- import org.openjdk.jmh.annotations.Benchmark;
- import org.openjdk.jmh.annotations.Scope;
- import org.openjdk.jmh.annotations.State;
- @State(Scope.Thread)
- public class IndexOfBenchmark {
- static final int loops = 100000;
- static final Random rng = new Random(2017);
- static final String [] paths = new String[1000];
- static {
- for (int i = 0; i < paths.length; i++) {
- paths[i] = ((i & 1) == 0) ? randomName() : randomNameWithSlash();
- }
- }
- private static String randomName() {
- StringBuilder sb = new StringBuilder(32);
- int len = 10 + rng.nextInt(22);
- for (int i = 0; i < len; i++) {
- sb.append((char) ('a' + rng.nextInt(26)));
- }
- return sb.toString();
- }
- private static String randomNameWithSlash() {
- StringBuilder sb = new StringBuilder(32);
- int len1 = 5 + rng.nextInt(11);
- int len2 = 4 + rng.nextInt(11);
- for (int i = 0; i < len1; i++) {
- sb.append((char) ('a' + rng.nextInt(26)));
- }
- sb.append('/');
- for (int i = 0; i < len2; i++) {
- sb.append((char) ('a' + rng.nextInt(26)));
- }
- return sb.toString();
- }
- @Benchmark
- public static int StringIndexOfChar() {
- int acc = 0;
- for (String s : paths) {
- if (s.indexOf('/') > -1) {
- acc++;
- }
- }
- return acc;
- }
- @Benchmark
- public static int StringIndexOfString() {
- int acc = 0;
- for (String s : paths) {
- if (s.indexOf("/") > -1) {
- acc++;
- }
- }
- return acc;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement