java計(jì)算兩個(gè)時(shí)間的時(shí)間差 如何精確測量程序的cpu時(shí)間?
如何精確測量程序的cpu時(shí)間?為了準(zhǔn)確計(jì)算程序的運(yùn)行時(shí)間,如果主程序使用匯編語言,則匯編的每條語句的執(zhí)行時(shí)間是固定的,程序的運(yùn)行時(shí)間直接根據(jù)匯編語句計(jì)算;如果主程序使用C語言,則C語言,C語言程序的運(yùn)
如何精確測量程序的cpu時(shí)間?
為了準(zhǔn)確計(jì)算程序的運(yùn)行時(shí)間,如果主程序使用匯編語言,則匯編的每條語句的執(zhí)行時(shí)間是固定的,程序的運(yùn)行時(shí)間直接根據(jù)匯編語句計(jì)算;如果主程序使用C語言,則C語言,C語言程序的運(yùn)行時(shí)間可以通過定時(shí)器函數(shù)獲得,但其精度不夠高,不能用來測量小于100ms的程序的運(yùn)行時(shí)間,其優(yōu)點(diǎn)是精度不太依賴于系統(tǒng)負(fù)載,理論值與程序執(zhí)行時(shí)間的誤差很小。
但實(shí)際上,計(jì)算機(jī)不僅運(yùn)行一個(gè)程序,進(jìn)程切換、各種中斷、共享多用戶、網(wǎng)絡(luò)流量、緩存訪問、傳輸預(yù)測等,都會(huì)對定時(shí)產(chǎn)生影響。因此,程序的準(zhǔn)確運(yùn)行時(shí)間很難計(jì)算。除非它是一個(gè)帶條紋的嵌入式電路板
使用date類的gettime()方法,下面是示例代碼。例如,您需要計(jì)算代碼的執(zhí)行時(shí)間。讓我們看一下gettime的定義:毫秒意味著微妙,因此gettime的精度是微妙的