diff options
Diffstat (limited to 'android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java')
-rw-r--r-- | android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java b/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java deleted file mode 100644 index 52532bb61..000000000 --- a/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2017 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.common.io; - -import com.google.caliper.BeforeExperiment; -import com.google.caliper.Benchmark; -import com.google.caliper.Param; -import com.google.caliper.api.VmOptions; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.nio.CharBuffer; -import java.util.Random; - -/** - * Benchmarks for {@link CharStreams#copy}. - * - * <p>{@link CharStreams#copy} has type specific optimizations for various common Appendable and - * Reader implementations, this compares the performance of the different options. - */ -// These benchmarks allocate a lot of data so use a large heap -@VmOptions({"-Xms12g", "-Xmx12g", "-d64"}) -public class CharStreamsCopyBenchmark { - enum CopyStrategy { - OLD { - @Override - long copy(Readable from, Appendable to) throws IOException { - CharBuffer buf = CharStreams.createBuffer(); - long total = 0; - while (from.read(buf) != -1) { - buf.flip(); - to.append(buf); - total += buf.remaining(); - buf.clear(); - } - return total; - } - }, - NEW { - @Override - long copy(Readable from, Appendable to) throws IOException { - return CharStreams.copy(from, to); - } - }; - - abstract long copy(Readable from, Appendable to) throws IOException; - } - - enum TargetSupplier { - STRING_WRITER { - @Override - Appendable get(int sz) { - return new StringWriter(sz); - } - }, - STRING_BUILDER { - @Override - Appendable get(int sz) { - return new StringBuilder(sz); - } - }; - - abstract Appendable get(int sz); - } - - @Param CopyStrategy strategy; - @Param TargetSupplier target; - - @Param({"10", "1024", "1048576"}) - int size; - - String data; - - @BeforeExperiment - public void setUp() { - // precalculate some random strings of ascii characters. - StringBuilder sb = new StringBuilder(); - Random random = new Random(0xdeadbeef); // for unpredictable but reproducible behavior - sb.ensureCapacity(size); - for (int k = 0; k < size; k++) { - // [9-127) includes all ascii non-control characters - sb.append((char) (random.nextInt(127 - 9) + 9)); - } - data = sb.toString(); - } - - @Benchmark - public long timeCopy(int reps) throws IOException { - long r = 0; - final String localData = data; - final TargetSupplier localTarget = target; - final CopyStrategy localStrategy = strategy; - for (int i = 0; i < reps; i++) { - Appendable appendable = localTarget.get(localData.length()); - r += localStrategy.copy(new StringReader(localData), appendable); - } - return r; - } -} |