很多初学者可能不知道两个程序中那个程序的效率高,下面我分享一个测试程序效率高低的方法,原理很简单,就是调用System.currentTimeMillis()的方法,这个方法是返回一个长整数的值,这个值就是当前的时间,单位为毫秒,只要在你需要测试的程序头和程序尾定义一个长整数变量记住这个方法返回的值,然后用结束的时间减去开始的时间就知道这个程序运行了多长时间了。需要注意的是在测试两个程序前必须保证cpu的运行状况稳定,否则会导致测试结果不准确。这个方法智能测试部分程序,有些太小的程序需要运行多次才能得出比较的结果。
下面用String类和StringBuilder类的添加字符串来演示一下:
public static void main(String args[])
{
//定义一个string类对象
String str = "";
//记录开始运行时的时间
long starTime = System.currentTimeMillis();
//运行10000次的添加字符串"abc"操作
for(int i=0;i<10000;i++)
{
str = str + "abc";
}
//记录结束运行的时间
long endTime = System.currentTimeMillis();
//打印出从执行开始到完成所花的时间
System.out.println("String = "+(endTime-starTime)+"毫秒");
/********************************************************************************/
//定义一个stringBuilder类对象
StringBuilder strbd = new StringBuilder("");
//记录开始运行时的时间
long starTime1 = System.currentTimeMillis();
//运行10000次的添加字符串"abc"操作
for(int i=0;i<10000;i++)
{
strbd.append("abc");
}
//记录结束运行的时间
long endTime1 = System.currentTimeMillis();
//打印出从执行开始到完成所花的时间
System.out.println("StringBuilder = "+(endTime1-starTime1)+"毫秒");
/********************************************************************************/
运行结果是:
String = 546毫秒
StringBuilder = 2毫秒
|
|