@@ -0,0 +1,2525 @@
+/*%0A * Java Genetic Algorithm Library (@__identifier__@).%0A * Copyright (c) @__year__@ Franz Wilhelmst%C3%B6tter%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *%0A * Author:%0A *    Franz Wilhelmst%C3%B6tter (franz.wilhelmstoetter@gmail.com)%0A */%0Apackage io.jenetics.internal.util;%0A%0Aimport java.util.concurrent.TimeUnit;%0A%0Aimport org.openjdk.jmh.annotations.Benchmark;%0Aimport org.openjdk.jmh.annotations.BenchmarkMode;%0Aimport org.openjdk.jmh.annotations.Fork;%0Aimport org.openjdk.jmh.annotations.Measurement;%0Aimport org.openjdk.jmh.annotations.Mode;%0Aimport org.openjdk.jmh.annotations.OutputTimeUnit;%0Aimport org.openjdk.jmh.annotations.Scope;%0Aimport org.openjdk.jmh.annotations.Setup;%0Aimport org.openjdk.jmh.annotations.State;%0Aimport org.openjdk.jmh.annotations.Warmup;%0Aimport org.openjdk.jmh.runner.Runner;%0Aimport org.openjdk.jmh.runner.RunnerException;%0Aimport org.openjdk.jmh.runner.options.Options;%0Aimport org.openjdk.jmh.runner.options.OptionsBuilder;%0A%0Aimport io.jenetics.util.ProxySorterPerf;%0A%0A/**%0A * @author %3Ca href=%22mailto:franz.wilhelmstoetter@gmail.com%22%3EFranz Wilhelmst%C3%B6tter%3C/a%3E%0A */%0A@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)%0A@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)%0A@Fork(value = 3)%0A@BenchmarkMode(Mode.AverageTime)%0A@OutputTimeUnit(TimeUnit.NANOSECONDS)%0A@State(Scope.Benchmark)%0Apublic class BitArrayPerf %7B%0A%0A%09BitArray array;%0A%0A%09@Setup%0A%09public void setup() %7B%0A%09%09array = BitArray.ofLength(1000);%0A%09%7D%0A%0A%09@Benchmark%0A%09public byte%5B%5D naiveBitArray() %7B%0A%09%09byte%5B%5D bytes = Bits.newArray(array.length());%0A%09%09for (int i = 0, n = array.length(); i %3C n; ++i) %7B%0A%09%09%09Bits.set(bytes, i, array.get(i));%0A%09%09%7D%0A%09%09return bytes;%0A%09%7D%0A%0A%09@Benchmark%0A%09public byte%5B%5D toBitArray() %7B%0A%09%09return array.toByteArray();%0A%09%7D%0A%0A%09public static void main(String%5B%5D args) throws RunnerException %7B%0A%09%09final Options opt = new OptionsBuilder()%0A%09%09%09.include(%22.*%22 + BitArrayPerf.class.getSimpleName() + %22.*%22)%0A%09%09%09.warmupIterations(4)%0A%09%09%09.measurementIterations(7)%0A%09%09%09.threads(1)%0A%09%09%09.forks(1)%0A%09%09%09.build();%0A%0A%09%09new Runner(opt).run();%0A%09%7D%0A%0A%7D%0A

Implement performance test.