十堰网站建设十堰,wordpress 控制台 慢,哪有专业做网站,南阳网站建设电话前言
简单测试一下fastutil的实现和Java类库实现的速率。 使用jmh进行测试。 简单解释一下#xff0c;每轮测试预热2次#xff0c;每次1s#xff1b;实测2次#xff0c;每次1秒。 进行5轮测试。数组大小3种。
package fastutil;import it.unimi.dsi.fastutil.ints.IntArr…前言
简单测试一下fastutil的实现和Java类库实现的速率。 使用jmh进行测试。 简单解释一下每轮测试预热2次每次1s实测2次每次1秒。 进行5轮测试。数组大小3种。
package fastutil;import it.unimi.dsi.fastutil.ints.IntArrayList;
import org.openjdk.jmh.annotations.*;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;State(Scope.Benchmark)
Warmup(iterations 2, time 1000, timeUnit TimeUnit.MILLISECONDS)
Measurement(iterations 2, time 1000, timeUnit TimeUnit.MILLISECONDS)
Fork(value 5)
public class ArrayListTest {Param({500000, 5000000, 50000000})public int size;BenchmarkBenchmarkMode(Mode.AverageTime)public ListInteger insertArrayList() {ListInteger list new ArrayList(size);for (int i 0; i size; i) {list.add(i);}return list;}BenchmarkBenchmarkMode(Mode.AverageTime)public ListInteger insertIntArrayList() {ListInteger list new IntArrayList(size);for (int i 0; i size; i) {list.add(i);}return list;}BenchmarkBenchmarkMode(Mode.AverageTime)public ListInteger insertIntArrayList2() {IntArrayList list new IntArrayList(size);for (int i 0; i size; i) {list.add(i);}return list;}
}
测试结果
Benchmark (size) Mode Cnt Score Error Units
ArrayListTest.insertArrayList 500000 avgt 10 0.010 ± 0.001 s/op
ArrayListTest.insertArrayList 5000000 avgt 10 0.097 ± 0.014 s/op
ArrayListTest.insertArrayList 50000000 avgt 10 1.045 ± 0.051 s/op
ArrayListTest.insertIntArrayList 500000 avgt 10 0.002 ± 0.001 s/op
ArrayListTest.insertIntArrayList 5000000 avgt 10 0.019 ± 0.001 s/op
ArrayListTest.insertIntArrayList 50000000 avgt 10 0.187 ± 0.006 s/op
ArrayListTest.insertIntArrayList2 500000 avgt 10 ≈ 10⁻³ s/op
ArrayListTest.insertIntArrayList2 5000000 avgt 10 0.006 ± 0.001 s/op
ArrayListTest.insertIntArrayList2 50000000 avgt 10 0.057 ± 0.003 s/opinsertArrayList和insertIntArrayList对比可以认为fastutil插入int到list会比原生类库更快。 insertIntArrayList和insertIntArrayList2对比可以认为不通过泛型声明还会更快。