long st = System.currentTimeMillis();
創(chuàng)新互聯(lián)建站成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站開(kāi)發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),成都響應(yīng)式網(wǎng)站建設(shè)公司,網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18982081108
// your code
long et = System.currentTimeMillis();
System.out.println( et - st);
開(kāi)頭結(jié)尾都用System.currentTimeMills記錄下時(shí)間,結(jié)尾在輸出兩者的差值,就是你程序的執(zhí)行時(shí)間,單位是毫秒。(System.currentTimeMillis()返回1970-01-01 00:00:00.000到現(xiàn)在的毫秒數(shù))
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言
問(wèn)題描述:
我想計(jì)算2個(gè)算法程序運(yùn)行的時(shí)間,做一下比較
JAVA中有那些計(jì)算時(shí)間函數(shù)?最好以毫秒顯示出來(lái)。
我知道System.currentTimeMillis()
但是不知道為什么,幾個(gè)程序運(yùn)行的時(shí)間都一樣,都是16ms,也不知道是我程序太小了
還是寫的不對(duì),大家還知道別的計(jì)算時(shí)間的函數(shù)沒(méi)?最好在程序開(kāi)始計(jì)算,到程序最后
結(jié)束,最后顯示一下時(shí)間。
解析:
import java.util.*;
public class RunningTime
{
public static void main(String argc[]) throws InterruptedException
{
int i=0,j=0;
long k=0,begin,end,time;
Date mydate=new Date();
begin=mydate.getTime();
for (;i100;i++)
{
for(;j100;j++)
{
Thread.currentThread().sleep(5);
k+=i*j;
}
}
Date mydate2=new Date();
end=mydate2.getTime();
time=end-begin;
System.out.println(begin+"運(yùn)行時(shí)間為:"+time+" "+end);
}
}
計(jì)算運(yùn)算時(shí)間的程序
此方法為 Java 內(nèi)置的方法,使用 System.currentTimeMillis 來(lái)執(zhí)行統(tǒng)計(jì)的時(shí)間(統(tǒng)計(jì)單位:毫秒)(統(tǒng)計(jì)單位:毫秒),示例代碼如下:
public class TimeIntervalTest {
public static void main(String[] args) throws InterruptedException {
// 開(kāi)始時(shí)間
long stime = System.currentTimeMillis();
// 執(zhí)行時(shí)間(1s)
Thread.sleep(1000);
// 結(jié)束時(shí)間
long etime = System.currentTimeMillis();
// 計(jì)算執(zhí)行時(shí)間
System.out.printf("執(zhí)行時(shí)長(zhǎng):%d 毫秒.", (etime - stime));
}
}
以上程序的執(zhí)行結(jié)果為:
執(zhí)行時(shí)長(zhǎng):1000 毫秒.
方法二:System.nanoTime
此方法為 Java 內(nèi)置的方法,使用 System.nanoTime 來(lái)統(tǒng)計(jì)執(zhí)行時(shí)間(統(tǒng)計(jì)單位:納秒),它的執(zhí)行方法
最簡(jiǎn)單的就是直接獲取開(kāi)始時(shí)間、結(jié)束時(shí)間,計(jì)算時(shí)間差
public?class?Demo?{
public?static?void?main(String[]?args)?{
long?startTime?=?System.currentTimeMillis();????//獲取開(kāi)始時(shí)間
doSomething();????//測(cè)試的代碼段
long?endTime?=?System.currentTimeMillis();????//獲取結(jié)束時(shí)間
System.out.println("程序運(yùn)行時(shí)間:"?+?(endTime?-?startTime)?+?"ms");????//輸出程序運(yùn)行時(shí)間
}
}