Re: 可行嗎? 原生編譯的 Eclipse
※ 引述《freesamael (燒賣)》之銘言:
: 這時我才發現一直被我丟棄在一旁,不太使用的 gcj/gij 竟然有提供把 java source 和
: java bytecode 編譯成機器碼的功能,而且老早就有人把 Eclipse 拿來開刀了。最早
: 這麼做的應該是 Red Hat 的工程師,他們弄了一個 native Eclipse 的專案,後來成為
: Fedora 專案的一部分 - Fedora Eclipse。 (http://sourceware.org/eclipse/)
: 我在 Ubuntu Linux 套件庫內也找到 eclipse-gcj,一樣是以 gcj 編譯的 natively-
: compiled Eclipse。但是我想試試最新的 Eclipse europa,所以我決定自己編譯一次。
: 其實也沒有想像中的困難,因為有現成的文件。(http://0rz.tw/fd2UX)
老實說,我做了一項簡單的測試,分別以 javac 編譯和 gcj 編譯
結果 javac 編譯的版本效率高過 gcj 編譯的版本高達 2 倍
測試用的程式碼如下:
public class Driver {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
for (int i=0; i<50000; i++) for (int j=0; j<50000; j++);
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
}
第一種編譯並執行:
javac Driver.java
java Driver
輸出的結果:6469
第二種編譯並執行:
gcj --main=Driver Driver.java
./a.out
輸出的結果:11713
結果顯示 gcj 版本比 java 版本執行速度還慢個兩倍左右
測過很多次,誤差大約 ±10%, 所以測試結果應該是沒有問題
請問是我哪邊參數沒設到,還是本來效率就沒有比較高呢?
我的系統:
linux kernel: 2.6.22-10
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_02-b05, mixed mode)
gcj (GCC) 4.2.1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.127.91
推
09/07 18:36, , 1F
09/07 18:36, 1F
推
09/07 18:37, , 2F
09/07 18:37, 2F
→
09/07 18:37, , 3F
09/07 18:37, 3F
→
09/07 18:37, , 4F
09/07 18:37, 4F
→
09/07 18:38, , 5F
09/07 18:38, 5F
→
09/07 18:38, , 6F
09/07 18:38, 6F
→
09/07 18:37, , 7F
09/07 18:37, 7F
→
09/07 18:43, , 8F
09/07 18:43, 8F
→
09/07 18:43, , 9F
09/07 18:43, 9F
→
09/07 18:44, , 10F
09/07 18:44, 10F
討論串 (同標題文章)
Eclipse 近期熱門文章
PTT數位生活區 即時熱門文章