您的位置:首页 > 编程语言 > Java开发

多线程下对java并发集合测试 性能分析

2017-04-06 11:25 435 查看
这几天对java集合理解了一下,想要对其性能测试。

第一个代方便以后的任何测试,利用泛型,构造出任何类型的随机数生成器

package com.kailong.current;

import com.kailong.thread.Generator;

import java.util.Random;

/**
* Created by Administrator on 2017/4/5.
*/
public class RandomGenerator {
private static Random random=new Random(47);
public static class Boolean implements Generator<java.lang.Boolean>{
@Override
public java.lang.Boolean next() {
return random.nextBoolean();
}
}
public static class Byte implements Generator<java.lang.Byte>{
@Override
public java.lang.Byte next() {
return (byte)random.nextInt();
}
}
public static class Character implements Generator<java.lang.Character>{
@Override
public java.lang.Character next() {
return CountingGenerator.chars[random.nextInt(CountingGenerator.chars.length)];
}
}
public static class String extends CountingGenerator.String{
{
cg=new Character();
}
public String(){

}
public String(int length){
super(length);
}
}
public static class Short implements Generator<java.lang.Short>{
@Override
public java.lang.Short next() {
return (short)random.nextInt();
}
}
public static class Integer implements Generator<java.lang.Integer>{
private int mod=10000;

public Integer() {
}

public Integer(int mod) {
this.mod = mod;
}
@Override
public java.lang.Integer next() {
return random.nextInt(mod);
}
}
public static class Long implements Generator<java.lang.Long>{
private int mod=10000;
public Long(int mod) {
this.mod = mod;
}
@Override
public java.lang.Long next() {
return new java.lang.Long(random.nextInt(mod));
}
}
public static class Float implements Generator<java.lang.Float>{
@Override
public java.lang.Float next() {
int mod=Math.round(random.nextFloat()*100);
return (float)mod/100;
}
}
public static class Double implements Generator<java.lang.Double>{
@Override
public java.lang.Double next() {
long mod=Math.round(random.nextDouble()*100);
return (double)mod/100;
}
}
}
随机数生成,利用反射,泛型,比较简单,这一方法设计的好处
package com.kailong.current;
import com.kailong.thread.Generator;
/**
* Created by Administrator on 2017/4/5.
*/
public class Generated {
public static <T&g
4000
t; T[] array(T[]a, Generator<T> gen){
return new CollectionData<T>(gen,a.length).toArray(a);
}
@SuppressWarnings("unchecked")
public static <T> T[] array(Class<T> type,Generator<T> gen,int size){
T [] a=(T[])java.lang.reflect.Array.newInstance(type,size);
return new CollectionData<T>(gen,size).toArray(a);
}
}
首先测试Map 因为需要数据因此创建Mapdata生成随机map
package com.kailong.current;

import com.kailong.thread.Generator;

import java.util.LinkedHashMap;
import java.util.Map;

/**
* Created by Administrator on 2017/4/5.
*/
public class MapData<K,V> extends LinkedHashMap<K,V> {
public MapData(Generator<K> genK,Generator<V> genV,int quantuty) {
for(int i=0;i< quantuty;i++){
put(genK.next(),genV.next());
}
}
public MapData(Generator<K> genK,V genV,int quantuty) {
for(int i=0;i< quantuty;i++){
put(genK.next(),genV);
}
}
public MapData(Iterable<K> genK,Generator<V> genV) {
for (K key:genK){
put(key,genV.next());
}
}
public MapData(Iterable<K> genK,V genV) {
for (K key:genK){
put(key,genV);
}
}
public static <K,V> MapData map(Generator<K> genK,Generator<V> genV,int quantuty) {
return new MapData(genK,genV,quantuty);
}
public static <K,V> MapData map(Generator<K> genK,V genV,int quantuty) {
return new MapData(genK,genV,quantuty);
}
public static <K,V> MapData map(Iterable<K> genK,Generator<V> genV) {
return new MapData(genK,genV);
}
public static <K,V> MapData map(Iterable<K> genK,V genV) {
return new MapData(genK,genV);
}
}
自己定义实现集合测试框架使用模板设计模式代码如下
package com.kailong.current;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
* Created by Administrator on 2017/4/5.
*/
public abstract class TestTer<C> {
static int testReps=10;
static int testCycles=1000;
static int containerSize=1000;
abstract C containerInitializer();
abstract void startReaderAndWriters();
C testContainer;
String testId;
int nReaders;
int nWriters;
volatile long readResult=0;
volatile long readTime=0;
volatile long writeTime=0;
CountDownLatch endLatch;
static ExecutorService executorService= Executors.newCachedThreadPool();
Integer [] writerData;
TestTer(String testId,int nReaders,int nWriters){
this.testId=testId+" "+nReaders+"r"+nWriters+"w";
this.nReaders=nReaders;
this.nWriters=nWriters;
writerData= Generated.array(Integer.class,new RandomGenerator.Integer(),containerSize);
for(int i=0;i<testReps;i++){
runTest();
readTime=0;
writeTime=0;
}
}

void runTest(){
endLatch=new CountDownLatch(nReaders+nWriters);
testContainer=containerInitializer();
startReaderAndWriters();
try {
endLatch.await();
} catch (InterruptedException e) {
System.out.println("中断异常");
}
System.out.printf("%-27s %14d %14d \n",testId,readTime,writeTime);
if(readTime!=0&&writeTime!=0){
System.out.printf("%-27s %14d \n","readtime+writetime=",writeTime+readTime);
}
}
public abstract class TestTask implements Runnable{
abstract void test();
abstract void putResults();
long duration;
@Override
public void run() {
long sarttime=System.nanoTime();
test();
duration=System.nanoTime()-sarttime;
synchronized (TestTer.this){
putResults();
}
endLatch.countDown();
}
}
public static void initMian(String []args){
if(args.length>0)
testReps=new Integer(args[0]);
if (args.length>1)
testCycles=new Integer(args[1]);
if(args.length>2)
containerSize=new Integer(args[2]);
System.out.printf("%-27s %14s %14s\n","Type","Read time","Write time");

}
}


因为要测试各种map 我自己实现了一个WriteRead map对其也进行测试
package com.kailong.current;

import com.kailong.thread.Generator;

import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Set;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/**
* Created by Administrator on 2017/4/5.
*/
public class ReadWriteMap<K,V>extends AbstractMap<K,V> {
private HashMap<K,V> lockHashmap;
private ReentrantReadWriteLock lock=new ReentrantReadWriteLock(true);

public ReadWriteMap(Generator<K> genk,int size,V initValue) {
lockHashmap=new HashMap<K,V>(MapData.map(genk,initValue,size));
}
public V put(K key,V value){
Lock wLock=lock.writeLock();
wLock.lock();
try{
return lockHashmap.put(key,value);
}finally {
wLock.unlock();
}
}
public V get(Object key){
Lock rLock=lock.readLock();
rLock.lock();
try {
return lockHashmap.get(key);
}finally {
rLock.unlock();
}
}
@Override
public Set<Entry<K, V>> entrySet() {
return null;
}
}
下面编写MapTest类
package com.kailong.current;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
* Created by Administrator on 2017/4/5.
*/
abstract class MapTest extends TestTer<Map<Integer,Integer>> {
MapTest(String testId, int nReaders, int nWriters) {
super(testId, nReaders, nWriters);
}
@Override
void startReaderAndWriters() {
for(int i=0;i<nReaders;i++){
executorService.execute(new Reader());
}
for(int i=0;i<nWriters;i++){
executorService.execute(new Writer());
}
}
class Reader extends TestTask{
long result=0;
@Override
void test() {
for(long i=0;i<testCycles;i++){
for(int index=0;index<containerSize;index++){
result+=testContainer.get(index);
}
}
}

@Override
void putResults() {
readResult+=result;
readTime+=duration;
}
}
class Writer extends TestTask{

@Override
void test() {
for(long i=0;i<testCycles;i++){
for(int index=0;index<containerSize;index++){
testContainer.put(index,writerData[index]);
}
}
}

@Override
void putResults() {
writeTime+=duration;
}
}
static class SynchronizedHashMapTest extends MapTest{
@Override
Map<Integer, Integer> containerInitializer() {
return Collections.synchronizedMap(
new HashMap<Integer,Integer>(MapData.map(new CountingGenerator.Integer(),new CountingGenerator.Integer(),containerSize)));
}

public SynchronizedHashMapTest(int nReaders, int nWriters) {
super("synchroned test", nReaders, nWriters);
}
}
static class CurentMapTest extends MapTest{
public CurentMapTest(int nReaders, int nWriters) {
super("currenttest", nReaders, nWriters);
}
@Override
Map<Integer, Integer> containerInitializer() {
return new ConcurrentHashMap<Integer,Integer>(MapData.map(new CountingGenerator.Integer(),new CountingGenerator.Integer(),containerSize));
}
}
static class ReadWriteMapTest extends MapTest{
public ReadWriteMapTest(int nReaders, int nWriters) {
super("readwriteTest", nReaders, nWriters);
}

@Override
Map<Integer, Integer> containerInitializer() {
return new ReadWriteMap<Integer,Integer>(new CountingGenerator.Integer(),containerSize,1);
}
}
public static class MapComparsions{
public static void main(String []args){
TestTer.initMian(args);
new SynchronizedHashMapTest(10,0);
new SynchronizedHashMapTest(9,1);
new SynchronizedHashMapTest(5,5);
new CurentMapTest(10,0);
new CurentMapTest(9,1);
new CurentMapTest(5,5);
new ReadWriteMapTest(10,0);
new ReadWriteMapTest(9,1);
new ReadWriteMapTest(5,5);
Thread.yield();
TestTer.executorService.shutdown();
}
}
}
好啦!大功告成现在看输出结果
D:\Java\jdk1.8.0_73\bin\java -Didea.launcher.port=7545 "-Didea.launcher.bin.path=D:\idea\IntelliJ IDEA 2016.1.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\Java\jdk1.8.0_73\jre\lib\charsets.jar;D:\Java\jdk1.8.0_73\jre\lib\deploy.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_73\jre\lib\javaws.jar;D:\Java\jdk1.8.0_73\jre\lib\javax.mail.jar;D:\Java\jdk1.8.0_73\jre\lib\jce.jar;D:\Java\jdk1.8.0_73\jre\lib\jfr.jar;D:\Java\jdk1.8.0_73\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_73\jre\lib\jsse.jar;D:\Java\jdk1.8.0_73\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_73\jre\lib\plugin.jar;D:\Java\jdk1.8.0_73\jre\lib\resources.jar;D:\Java\jdk1.8.0_73\jre\lib\rt.jar;E:\testrmi\out\production\testrmi;D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-ant.jar;D:\tomcat\lib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\tomcat\lib\catalina.jar;D:\tomcat\lib\ecj-4.4.2.jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.jar;D:\tomcat\lib\servlet-api.jar;D:\tomcat\lib\tomcat-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\lib\tomcat-dbcp.jar;D:\tomcat\lib\tomcat-jdbc.jar;D:\tomcat\lib\tomcat-util.jar;D:\tomcat\lib\tomcat7-websocket.jar;D:\tomcat\lib\websocket-api.jar;D:\idea\IntelliJ IDEA 2016.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.kailong.current.MapTest$MapComparsions
Type Read time Write time
synchroned test 10r0w 4251907046 0
synchroned test 10r0w 4039781365 0
synchroned test 10r0w 2925511498 0
synchroned test 10r0w 3880197337 0
synchroned test 10r0w 4436007470 0
synchroned test 10r0w 4766955450 0
synchroned test 10r0w 4234129597 0
synchroned test 10r0w 4668908331 0
synchroned test 10r0w 4977909870 0
synchroned test 10r0w 5156573977 0
synchroned test 9r1w 3951655672 508074631
readtime+writetime= 4459730303
synchroned test 9r1w 4460387570 551251540
readtime+writetime= 5011639110
synchroned test 9r1w 4604502598 408472809
readtime+writetime= 5012975407
synchroned test 9r1w 4885329861 405263648
readtime+writetime= 5290593509
synchroned test 9r1w 4557999113 514171503
readtime+writetime= 5072170616
synchroned test 9r1w 4679850762 579174568
readtime+writetime= 5259025330
synchroned test 9r1w 4639450308 566134707
readtime+writetime= 5205585015
synchroned test 9r1w 4762732675 571666272
readtime+writetime= 5334398947
synchroned test 9r1w 4813568141 514177661
readtime+writetime= 5327745802
synchroned test 9r1w 4764247555 577355893
readtime+writetime= 5341603448
synchroned test 5r5w 2455405304 2417913500
readtime+writetime= 4873318804
synchroned test 5r5w 2555238256 2037470866
readtime+writetime= 4592709122
synchroned test 5r5w 2509416672 1878593372
readtime+writetime= 4388010044
synchroned test 5r5w 2724795029 2266246660
readtime+writetime= 4991041689
synchroned test 5r5w 2913835438 2537662383
readtime+writetime= 5451497821
synchroned test 5r5w 2878562172 3150723425
readtime+writetime= 6029285597
synchroned test 5r5w 2656480170 2851949985
readtime+writetime= 5508430155
synchroned test 5r5w 2341726198 3136269267
readtime+writetime= 5477995465
synchroned test 5r5w 1995134736 2853311735
readtime+writetime= 4848446471
synchroned test 5r5w 2590804646 2017344743
readtime+writetime= 4608149389
currenttest 10r0w 177489565 0
currenttest 10r0w 158131140 0
currenttest 10r0w 221331131 0
currenttest 10r0w 176000959 0
currenttest 10r0w 220111426 0
currenttest 10r0w 216674007 0
currenttest 10r0w 172841473 0
currenttest 10r0w 147079916 0
currenttest 10r0w 436127757 0
currenttest 10r0w 193431914 0
currenttest 9r1w 182355647 41437058
readtime+writetime= 223792705
currenttest 9r1w 165818840 27377425
readtime+writetime= 193196265
currenttest 9r1w 237415939 50863788
readtime+writetime= 288279727
currenttest 9r1w 201186939 25223342
readtime+writetime= 226410281
currenttest 9r1w 165416106 24021292
readtime+writetime= 189437398
currenttest 9r1w 154512677 23543017
readtime+writetime= 178055694
currenttest 9r1w 163018161 33200470
readtime+writetime= 196218631
currenttest 9r1w 257744867 46509231
readtime+writetime= 304254098
currenttest 9r1w 177386108 24769699
readtime+writetime= 202155807
currenttest 9r1w 156174525 33022708
readtime+writetime= 189197233
currenttest 5r5w 104509372 594242888
readtime+writetime= 698752260
currenttest 5r5w 183932518 594666559
readtime+writetime= 778599077
currenttest 5r5w 135412069 497765246
readtime+writetime= 633177315
currenttest 5r5w 144212732 581747808
readtime+writetime= 725960540
currenttest 5r5w 144576469 521650240
readtime+writetime= 666226709
currenttest 5r5w 119790347 531960446
readtime+writetime= 651750793
currenttest 5r5w 97435011 579469333
readtime+writetime= 676904344
currenttest 5r5w 184393551 549970667
readtime+writetime= 734364218
currenttest 5r5w 150656099 496131723
readtime+writetime= 646787822
currenttest 5r5w 177560588 629
e0d4
363847
readtime+writetime= 806924435
readwriteTest 10r0w 13582027792 0
readwriteTest 10r0w 12525219853 0
readwriteTest 10r0w 13904372169 0
readwriteTest 10r0w 12761135692 0
readwriteTest 10r0w 13801810382 0
readwriteTest 10r0w 12872396740 0
readwriteTest 10r0w 13427252376 0
readwriteTest 10r0w 13591083813 0
readwriteTest 10r0w 12318705382 0
readwriteTest 10r0w 11563851307 0
readwriteTest 9r1w 246884141359 27817196047
readtime+writetime= 274701337406
readwriteTest 9r1w 252992427661 29027991587
readtime+writetime= 282020419248

Process finished with exit code -1


分析结果即可!!!!!!!!

也可以测试list
package com.kailong.current;

import javafx.concurrent.Task;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

/**
* Created by Administrator on 2017/4/6.
*/
public class ListTest extends TestTer<List<Integer>> {
public ListTest(String testId, int nReaders, int nWriters) {
super(testId, nReaders, nWriters);
}
class Reader extends TestTask{
long result=0;
@Override
void test() {
for(long i=0;i<testCycles;i++){
for (int index=0;index<containerSize;index++){
result+=testContainer.get(index);
}
}

}

@Override
void putResults() {
readResult+=result;
readTime+=duration;
}
}
class Writer extends TestTask{

@Override
void test() {
for(long i=0;i<testCycles;i++){
for (int index=0;index<containerSize;index++){
testContainer.set(index,writerData[index]);
}
}
}

@Override
void putResults() {
writeTime+=duration;
}
}
@Override
List<Integer> containerInitializer() {
return null;
}

@Override
void startReaderAndWriters() {
for(int i=0;i<nReaders;i++){
executorService.execute(new Reader());
}
for(int i=0;i<nWriters;i++){
executorService.execute(new Writer());
}
}
static class SynchronzedArrayListTest extends ListTest{

public SynchronzedArrayListTest(int nReaders, int nWriters) {
super("synchronized test", nReaders, nWriters);
}

@Override
List<Integer> containerInitializer() {
return Collections.synchronizedList(new ArrayList<Integer>(new CollectionData<Integer>(new CountingGenerator.Integer(),containerSize)));
}
}
static class CopyOnWriteArrayListTTest extends ListTest{

public CopyOnWriteArrayListTTest( int nReaders, int nWriters) {
super("CopyOnWriteArrayListTTest test", nReaders, nWriters);
}

@Override
List<Integer> containerInitializer() {
return Collections.synchronizedList(new CopyOnWriteArrayList<Integer>(new CollectionData<Integer>(new CountingGenerator.Integer(),containerSize)));
}
}
public static class ListComparisons{
public static void main(String []args){
TestTer.initMian(args);
new SynchronzedArrayListTest(10,0);
new SynchronzedArrayListTest(9,1);
new SynchronzedArrayListTest(5,5);
new CopyOnWriteArrayListTTest(10,0);
new CopyOnWriteArrayListTTest(9,1);
new CopyOnWriteArrayListTTest(5,5);
TestTer.executorService.shutdown();
}
}
}
结果
D:\Java\jdk1.8.0_73\bin\java -Didea.launcher.port=7546 "-Didea.launcher.bin.path=D:\idea\IntelliJ IDEA 2016.1.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\Java\jdk1.8.0_73\jre\lib\charsets.jar;D:\Java\jdk1.8.0_73\jre\lib\deploy.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_73\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_73\jre\lib\javaws.jar;D:\Java\jdk1.8.0_73\jre\lib\javax.mail.jar;D:\Java\jdk1.8.0_73\jre\lib\jce.jar;D:\Java\jdk1.8.0_73\jre\lib\jfr.jar;D:\Java\jdk1.8.0_73\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_73\jre\lib\jsse.jar;D:\Java\jdk1.8.0_73\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_73\jre\lib\plugin.jar;D:\Java\jdk1.8.0_73\jre\lib\resources.jar;D:\Java\jdk1.8.0_73\jre\lib\rt.jar;E:\testrmi\out\production\testrmi;D:\tomcat\lib\annotations-api.jar;D:\tomcat\lib\catalina-ant.jar;D:\tomcat\lib\catalina-ha.jar;D:\tomcat\lib\catalina-tribes.jar;D:\tomcat\lib\catalina.jar;D:\tomcat\lib\ecj-4.4.2.jar;D:\tomcat\lib\el-api.jar;D:\tomcat\lib\jasper-el.jar;D:\tomcat\lib\jasper.jar;D:\tomcat\lib\jsp-api.jar;D:\tomcat\lib\servlet-api.jar;D:\tomcat\lib\tomcat-api.jar;D:\tomcat\lib\tomcat-coyote.jar;D:\tomcat\lib\tomcat-dbcp.jar;D:\tomcat\lib\tomcat-jdbc.jar;D:\tomcat\lib\tomcat-util.jar;D:\tomcat\lib\tomcat7-websocket.jar;D:\tomcat\lib\websocket-api.jar;D:\idea\IntelliJ IDEA 2016.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.kailong.current.ListTest$ListComparisons
Type Read time Write time
synchronized test 10r0w 3207967768 0
synchronized test 10r0w 3467306751 0
synchronized test 10r0w 1974273340 0
synchronized test 10r0w 3454569452 0
synchronized test 10r0w 4626481061 0
synchronized test 10r0w 4205774684 0
synchronized test 10r0w 4351611909 0
synchronized test 10r0w 4567867993 0
synchronized test 10r0w 4719969177 0
synchronized test 10r0w 4503465130 0
synchronized test 9r1w 3324852751 396469553
readtime+writetime= 3721322304
synchronized test 9r1w 3786671039 447927388
readtime+writetime= 4234598427
synchronized test 9r1w 3664079195 394052317
readtime+writetime= 4058131512
synchronized test 9r1w 3513926822 303282360
readtime+writetime= 3817209182
synchronized test 9r1w 3542350704 433909631
readtime+writetime= 3976260335
synchronized test 9r1w 3679863078 459728249
readtime+writetime= 4139591327
synchronized test 9r1w 3250249297 410260284
readtime+writetime= 3660509581
synchronized test 9r1w 3708730749 448897074
readtime+writetime= 4157627823
synchronized test 9r1w 3599122931 426336059
readtime+writetime= 4025458990
synchronized test 9r1w 4472182684 495500729
readtime+writetime= 4967683413
synchronized test 5r5w 2179509403 2416599784
readtime+writetime= 4596109187
synchronized test 5r5w 2214898029 2385558323
readtime+writetime= 4600456352
synchronized test 5r5w 1772576923 2316488487
readtime+writetime= 4089065410
synchronized test 5r5w 1998155461 2469175097
readtime+writetime= 4467330558
synchronized test 5r5w 2322084095 2058867191
readtime+writetime= 4380951286
synchronized test 5r5w 1799078677 2428541459
readtime+writetime= 4227620136
synchronized test 5r5w 2231413899 2387737447
readtime+writetime= 4619151346
synchronized test 5r5w 2290636614 2380560866
readtime+writetime= 4671197480
synchronized test 5r5w 2107503410 2178805330
readtime+writetime= 4286308740
synchronized test 5r5w 2387039948 2014255868
readtime+writetime= 4401295816
CopyOnWriteArrayListTTest test 10r0w 4497308319 0
CopyOnWriteArrayListTTest test 10r0w 3862512671 0
CopyOnWriteArrayListTTest test 10r0w 4020112166 0
CopyOnWriteArrayListTTest test 10r0w 3523303058 0
CopyOnWriteArrayListTTest test 10r0w 4330577677 0
CopyOnWriteArrayListTTest test 10r0w 4348722965 0
CopyOnWriteArrayListTTest test 10r0w 4375100735 0
CopyOnWriteArrayListTTest test 10r0w 4041791351 0
CopyOnWriteArrayListTTest test 10r0w 4268778848 0
CopyOnWriteArrayListTTest test 10r0w 4540656424 0
CopyOnWriteArrayListTTest test 9r1w 4143156423 503011489
readtime+writetime= 4646167912
CopyOnWriteArrayListTTest test 9r1w 4542825285 409591521
readtime+writetime= 4952416806
CopyOnWriteArrayListTTest test 9r1w 3613087319 443872522
readtime+writetime= 4056959841
CopyOnWriteArrayListTTest test 9r1w 3285793520 441096887
readtime+writetime= 3726890407
CopyOnWriteArrayListTTest test 9r1w 3853063769 225872482
readtime+writetime= 4078936251
CopyOnWriteArrayListTTest test 9r1w 3908349033 254162529
readtime+writetime= 4162511562
CopyOnWriteArrayListTTest test 9r1w 3881193710 167577167
readtime+writetime= 4048770877
CopyOnWriteArrayListTTest test 9r1w 4273088656 194658596
readtime+writetime= 4467747252
CopyOnWriteArrayListTTest test 9r1w 4369251004 190163636
readtime+writetime= 4559414640
CopyOnWriteArrayListTTest test 9r1w 4614150607 201378252
readtime+writetime= 4815528859
CopyOnWriteArrayListTTest test 5r5w 3203762645 2634750902
readtime+writetime= 5838513547
CopyOnWriteArrayListTTest test 5r5w 3013242255 2870932766
readtime+writetime= 5884175021
CopyOnWriteArrayListTTest test 5r5w 3184515479 2313526058
readtime+writetime= 5498041537
CopyOnWriteArrayListTTest test 5r5w 3135491304 2352210471
readtime+writetime= 5487701775
CopyOnWriteArrayListTTest test 5r5w 3255822737 2457582788
readtime+writetime= 5713405525
CopyOnWriteArrayListTTest test 5r5w 3051879866 2540121904
readtime+writetime= 5592001770
CopyOnWriteArrayListTTest test 5r5w 3347153898 2509445822
readtime+writetime= 5856599720
CopyOnWriteArrayListTTest test 5r5w 2895644580 1938363331
readtime+writetime= 4834007911
CopyOnWriteArrayListTTest test 5r5w 3265447758 2764821895
readtime+writetime= 6030269653
CopyOnWriteArrayListTTest test 5r5w 3178463355 2344895127
readtime+writetime= 5523358482

Process finished with exit code 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: