测试算法(性能)的工具类
记录几个测试算法性能的工具类,方便以后测试算法.
Stopwatch类:可以得到算法的执行时间(单位:s,小数点后3位)
1: public class Stopwatch {2: private long start;3:4: public Stopwatch() {5: start = System.currentTimeMillis();6: }7:8: public double elapsedTime(){9: long now = System.currentTimeMillis();10: return (now - start) / 1000.0;11: }12: }具体使用方法:1: public static void main(String[] args) {2: Stopwatch timer = new Stopwatch();3: /*调用某个算法*/4: double spend = timer.elapsedTime();5: /*spend就是调用的算法消耗的时间*/6: }
例如:测试选择排序和插入排序的性能
1: public class SortCompare {2: public static double time(String alg,Comparable[] a){3: Stopwatch timer = new Stopwatch();4:5: if("Insert".equals(alg) || "Insertion".equals(alg))6: new Insertion().sort(a);7: else if("Select".equals(alg) || "Selection".equals(alg))8: new Selection().sort(a);9: /*此处还可以添加其他的排序算法*/10:11: return timer.elapsedTime();12: }13:14: public static double timeRandomInput(String alg,int times,int length){15: double total = 0.0;16: Double[] a = new Double[length];17: for(int i = 0;i<times;i++){18: for(int j = 0;j<length;j++)19: a[j] = StdRandom.uniform();20: total += time(alg, a);21: }22: return total;23: }24:25: public static void main(String[] args) {26: String alg1 = args[0];27: String alg2 = args[1];28: int times = Integer.parseInt(args[2]);29: int length = Integer.parseInt(args[3]);30: double t1 = timeRandomInput(alg1, times, length);31: double t2 = timeRandomInput(alg2, times, length);32: StdOut.printf("For %d randomDoubles \n %s is ", length,alg1);33: StdOut.printf("%.1f times faster than %s\n", t2/t1,alg2);34: }35: }测试结果可以看出结果大致在1~3之间….
总结:
在测试或者比较算法的性能时,可以以SortCompare为模板,比较不同算法之间的差异.
转载于:https://blog.51cto.com/youngcold/1112813
测试算法(性能)的工具类相关推荐
- java 类数组_Java常用类-字符串、日期类、算法及数组工具类等
大家好,乐字节的小乐又和大家见面了.这次要给大家讲述的是Java常用类. 主要有以下知识点: Ø 字符串相关类(String .StringBuffer.StringBuilder) Ø 算法及数组工 ...
- 基于Java的(SM2_SM3_SM4)国密算法, 加密解密工具类及测试demo
编写本文的同时借鉴了多位同学写的demo, 最后发现这位同学写的最详细, 放上该作者的链接, 原版链接: https://download.csdn.net/download/ererfei/9474 ...
- oracle orion —— 测试io性能的工具!
Oracle orion orion,一款由Oracle公司提供,专门用于模拟数据库运行机制来测试存储的优秀IO存储测试软件,可以在不运行oracle数据库的情况下,仿真OLTP随机操作(测试IOPS ...
- [SQL Server]用于压力测试和性能分析的两个支持实用工具[转]
微软有两个不提供支持服务的SQL Server压力测试和性能分析工具.具体看微软知识库: http://support.microsoft.com/?kbid=887057 分别是: Read80Tr ...
- 30_java之DButils工具类
01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类* a: 概述* DBUtils是java编程中的数据库操作实用工具,小巧简单实用.* DBUtils封装了 ...
- java 数字大小写转换工具类--适用于打印收据
本工具类主要实现数字double1000.00====>>零万壹仟零佰零拾零元零角零分,注释很详细,就不多做介绍了 /*** 不考虑分隔符的正确性*/private static fina ...
- mykit-excel之——这是我用过的最好用的导出Excel的工具类
mykit-excel的github链接地址为:https://github.com/sunshinelyz/mykit-excel 欢迎各位Star和Fork源码,也欢迎大家pr你牛逼哄哄的代码. ...
- 不要再用main方法测试代码性能了,用这款JDK自带工具
前言 作为软件开发人员,我们通常会写一些测试程序用来对比不同算法.不同工具的性能问题.而最常见的做法是写一个main方法,构造模拟场景进行并发测试. 如果细心的朋友可能已经发现,每次测试结果误差很大, ...
- Java学习笔记Day06 工具类及常用算法
第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...
最新文章
- Sharepoint the file is locked for use domain\user edit.文件被锁定,解锁方式
- 如何绘制caffe网络训练曲线
- java map join_HashMap 常见应用:实现 SQL JOIN
- 获取2个地址之间的距离(高德API)
- aftool刷工具提示15天_【15天】【指数600+】关键词百度首页【实战分析】【面授学员】...
- bzoj1036 树的统计Count 树链剖分
- 05-if和switch的简单比较
- 使用Eclipse进行远程调试 外加 ant 直接打包到服务器
- 利用iptabls的NFLOG记录自己的HTTP HTTPS上网行为
- 年薪百万架构师首次分享 Java 程序员黄金 5 年进阶心得!
- python画圆并填充图形颜色_python turtle我想用五种颜色画五个圆,并且用画圆周的颜色填充,老是出问题,怎么回事,怎么修改?:python颜色代码...
- 跨域访问JQuery+.NET实现的一种思路,以及极简单Demo
- 未来改变世界的十大新技术
- 子列和列_最大子列和的四种算法总结
- java的path的设置路径_java安装path设置
- 有别于普通专线的BGP线路
- h5跳转页面很慢_【干货】小技巧实现H5跨页帧数跳转
- mac 不显示 外接屏幕_mac连接投影仪不显示怎么办-mac外接显示器设置教程 - 河东软件园...
- 爬虫模拟用户增加阅读量
- E3ZG_D62传感器 STM32C8T6