Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package questionresolver;
- import org.openjdk.jmh.annotations.*;
- import org.openjdk.jmh.runner.Runner;
- import org.openjdk.jmh.runner.RunnerException;
- import org.openjdk.jmh.runner.options.Options;
- import org.openjdk.jmh.runner.options.OptionsBuilder;
- import java.util.concurrent.TimeUnit;
- @State(Scope.Thread)
- @BenchmarkMode(Mode.AverageTime)
- @OutputTimeUnit(TimeUnit.NANOSECONDS)
- public class QuestionResolver {
- public static final char COLOR_CHAR = '\u00A7';
- public static final String COLORIZE_ME
- = "&7Lorem &eipsum &rdolor &nsit &kamet, &aconsectetur &dadipiscing "
- + "&4elit. &7Aliquam &9cursus, &bmetus &3ut &ffaucibus &dconsectetur, "
- + "&5lectus &3enim &0porttitor &1justo, &oquis &2condimentum &adui "
- + "&marcu &8et &dex. &pSed &6mi &9mi, &3consequat &feu &rsagittis "
- + "&2at, &9interdum &beget &7dolor. &kSed &lmollis &cipsum &9a "
- + "&4gravida &2laoreet. &8Ut &bligula &drisus, &1dignissim &8at "
- + "&agravida &4id, &7blandit &8eget &9metus... &r& other words";
- public static final String NO_COLORS
- = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
- + "Aliquam cursus, metus ut faucibus consectetur, lectus enim "
- + "porttitor justo, quis condimentum dui arcu et ex. Sed mi mi, "
- + "consequat eu sagittis at, interdum eget dolor. Sed mollis ipsum "
- + "a gravida laoreet. Ut ligula risus, dignissim at gravida id, "
- + "blandit eget metus.";
- @Benchmark
- @OperationsPerInvocation(1)
- public String stringReplace() {
- return QuestionResolver.COLORIZE_ME.replace('&', QuestionResolver.COLOR_CHAR);
- }
- @Benchmark
- @OperationsPerInvocation(1)
- public String tacc() {
- return QuestionResolver.translateAlternateColorCodes('&', QuestionResolver.COLORIZE_ME);
- }
- @Benchmark
- @OperationsPerInvocation(1)
- public String NCstringReplace() {
- return QuestionResolver.NO_COLORS.replace('&', QuestionResolver.COLOR_CHAR);
- }
- @Benchmark
- @OperationsPerInvocation(1)
- public String NCtacc() {
- return QuestionResolver.translateAlternateColorCodes('&', QuestionResolver.NO_COLORS);
- }
- public static String translateAlternateColorCodes(char altColorChar, String textToTranslate) {
- char[] b = textToTranslate.toCharArray();
- for (int i = 0; i < b.length - 1; i++) {
- if (b[i] == altColorChar && "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[i + 1]) > -1) {
- b[i] = QuestionResolver.COLOR_CHAR;
- b[i + 1] = Character.toLowerCase(b[i + 1]);
- }
- }
- return new String(b);
- }
- public static void main(String[] args) throws RunnerException {
- Options opt = new OptionsBuilder()
- .include(QuestionResolver.class.getSimpleName())
- .warmupIterations(10)
- .measurementIterations(50)
- .forks(1)
- .build();
- new Runner(opt).run();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement