首頁 >Java >java教程 >Julia和Java的執行速度分別如何? Julia和Java的效能對比

Julia和Java的執行速度分別如何? Julia和Java的效能對比

不言
不言原創
2018-09-15 16:47:084863瀏覽

這篇文章帶給大家的內容是關於Julia和Java的執行速度分別如何? Julia和Java的效能對比,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、介紹

Julia效能號稱可以趕上c/c ,我很好奇Julia的執行速度,因為我一直用的是Java,所以就想把Julia和Java做一下簡單的比較。
這次比較一下Julia和Java做一億次加法運算的速度。

2、Julia不做優化和Java比較

首先我寫的Julia程式碼沒做優化,我們看一下Julia的程式碼執行:

x=0
@time for i in 1:10^8
    global x+=i
end

這是三次執行的結果:大約6s的時間

  6.550459 seconds (200.00 M allocations: 2.980 GiB, 18.45% gc time)
  6.565272 seconds (200.00 M allocations: 2.980 GiB, 18.15% gc time)
  6.382583 seconds (200.00 M allocations: 2.980 GiB, 18.37% gc time)

再看Java程式碼和執行結果:

 public class Test1 {
    public static void main(String[] args) {
            long t1=System.currentTimeMillis();
            long x=0;
            for(int i = 1; i<=100000000; i++)
                x+=i;
            long t2=System.currentTimeMillis();
            System.out.println("x="+x+", duration="+(t2-t1));
        }
}

三次執行結果:大約40ms

x=5000000050000000, duration=41
x=5000000050000000, duration=40
x=5000000050000000, duration=40

從上面的執行結果看,Java明顯比Julia快很多,相差一百多倍的時間,但是這是Julia沒有優化的程式碼,下面我們看一下Julia優化後的情況

3、Julia優化後與Java比較

#我們去掉全域變量,把程式碼放到函數裡面,然後呼叫函數,程式碼如下,:

function sumfor()
    x=0
    for i in 1:10^8
        x+=i
    end
    x
end
@time sumfor()
@time sumfor()

下面是三次執行的結果,由於Julia第一次執行會做預編譯的操作,我們呼叫兩次方法並以第二次結果為準,
第二次執行只花了0.002ms的時間,比Java快了很多。

0.080203 seconds (35.91 k allocations: 1.978 MiB)
 0.000003 seconds (5 allocations: 176 bytes)
 0.062682 seconds (355. 0.000002 seconds (5 allocations: 176 bytes)
 0.037539 seconds (35.91 k allocations: 1.978 MiB)
 0.000002 seconds (5 allocations: 176 by#:#Juliad比Java快很多,不過這裡只做了簡單的比較,並沒有做嚴謹的測試,僅供參考。

以上是Julia和Java的執行速度分別如何? Julia和Java的效能對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn