写在前面
TPS即每秒查询事物,可以用于测试一个方法、工具或者系统的性能。本文采用Java并发包中的工具实现了一个工具TPS性能测试。主要是测试OKHttp库来执行Http请求的性能。测试代码用到了Java了线程池ExecuterService
,CountDownLatch
, CyclicBarrier
, 原子类,volatile
关键词等。可算是对Java并发组件的组合使用。下面直接贴出源码,仅供参考,如有错误,欢迎指出,以期共同探讨。
TPS 实现源码
package cn.concurrent;
import java.math.RoundingMode;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import util.OkHttpUtil;
import com.google.common.math.LongMath;
/**
* 每秒事物执行次数统计
*
* @author Xie le
* @date 2016/7/9
*/
public class TpsWorkbeanch {
/** 线程数量 */
public static final int N_THRESHOLDS = 5;
/** 30 秒总时间 */
public static final int TIME_THRESHOLDS = 30;
/** 用原子变量来统计执行时间,便于作原子递减 */
private static AtomicInteger totalTime = new AtomicInteger(TIME_THRESHOLDS);
/** 用于统计执行的事物总数,用原子方式累加记录 */
private static AtomicLong totalExecCount = new AtomicLon