A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

很多初学者可能不知道两个程序中那个程序的效率高,下面我分享一个测试程序效率高低的方法,原理很简单,就是调用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毫秒

1 个回复

倒序浏览
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马