Re: [請益] java的效能!?

看板Soft_Job作者 (lgd1008)時間14年前 (2011/05/22 11:33), 編輯推噓2(2022)
留言24則, 6人參與, 最新討論串19/52 (看更多)
這個問題10年前問還有道理, 沒想到2011年了還有人問.. Java效能的最佳化是一門學問, 事實上, 越是新, 越是結構複雜的語言, 效能的最佳化就 越是學問, 因為你可能錯過越多的細節. Java效能的瓶頸多在I/O, 資料需要頻繁地進出VM, marshalling. 為了I/O效能, 你可以 使用JNI, JNI本來就是Java考量所在; 相反的,若為了彈性或簡潔, 你也可以在Java裡執行 Java Script. 這些東西都提供你做選擇. 但如果你在不需要I/O的地方也使用JNI, 效能會不會比較好? 不會, 因為bytecode執行前 己由JIT-compiler轉成native code, 如果是簡單的運算, compile出來的指令其實差不多 , 效能當然也跟C 做出的結果差不多, 這道理就如同簡單的運算, C 與 ASM 做出的結果也 會差不多. 因此堅持用JNI反而效能會比較差, 而且失去原本 Write Once, Run Anywhere 的特色, 每種平台都需要再寫專屬的 libary. 最後提一下, 有些人至今都無法接受, Java執行的速度可能比C做出來的快, 但這種情況 是真實存在的. 前面有人提到, 如果Java要更快, 只能在演算法的地方贏過. 但事實上VM裡己內建好了各 式各樣的演算法, 要看見他們的優勢, 只需選擇在適當的場合應用即可. 2009, 這裡有人對C, Java, C#去測試一些 "小型" 程式的效能, 參考看看 http://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.9.124

05/22 12:34, , 1F
推Mono 真是太強大了
05/22 12:34, 1F

05/22 13:17, , 2F
那個比較的重點應該是在於一個隱藏前提"給定相同的撰寫
05/22 13:17, 2F

05/22 13:17, , 3F
時間",得證 Java 有時可以比較快寫出跑快點的程式
05/22 13:17, 3F

05/22 13:18, , 4F
(但其實還有很多變因都要考慮,要去看到底兩邊的code怎
05/22 13:18, 4F

05/22 13:18, , 5F
麼寫的...)
05/22 13:18, 5F

05/22 13:31, , 6F
這種benchmark很多. 有的說Java快,有的說C快. 莫衷一是.
05/22 13:31, 6F

05/22 13:33, , 7F
但現實是傳統的Application應用(比如說辦公室軟體,IDE,
05/22 13:33, 7F

05/22 13:34, , 8F
compiler,photoshop,maya,finalcut,媒體撥放器...)還是用
05/22 13:34, 8F

05/22 13:35, , 9F
C/C++寫的居多. 少數純用JAVA寫的(如eclipse)好像也沒有真
05/22 13:35, 9F

05/22 13:35, , 10F
的讓使用者有體驗到說Java可以比C快..甚至是個大反例:p
05/22 13:35, 10F

05/22 13:36, , 11F
至於web應用. Java的處境也蠻尷尬的,不曉得是不是因為Sun
05/22 13:36, 11F

05/22 13:37, , 12F
不會經營. 感覺上web的方面,Java也沒有穩坐霸主的地位(以
05/22 13:37, 12F

05/22 13:38, , 13F
他的輩分資歷來說,按理說應該要是霸主). 像php, flash,
05/22 13:38, 13F

05/22 13:39, , 14F
c#, silverlight, scala, python. 一堆後起之秀
05/22 13:39, 14F

05/22 13:40, , 15F
手機應用也是很尷尬. J2ME基本上已經被Dalvik槍斃了吧
05/22 13:40, 15F

05/22 13:41, , 16F
..嚴格講起來Dalvik != JVM (Java).
05/22 13:41, 16F

05/22 13:52, , 17F
是我看錯嗎?C++(Gnu)每一項都比Java來的快呀…
05/22 13:52, 17F

05/22 13:53, , 18F
是分數越低越好嗎?
05/22 13:53, 18F

05/22 13:59, , 19F
並不是每一項...
05/22 13:59, 19F

05/22 14:47, , 20F
Eclipse 算蠻快了。
05/22 14:47, 20F

05/22 15:20, , 21F
那就要看你定義什麼樣算霸主了,在我的認知理他佔了絕大多數
05/22 15:20, 21F

05/22 15:20, , 22F
美國 enterprise 的市場。
05/22 15:20, 22F

05/22 15:21, , 23F
flash / silverlight 跟其他項目比,先作功課好嗎 orz
05/22 15:21, 23F

05/22 15:26, , 24F
scala 也很詭異...那是base on java 的東西啊...-_-
05/22 15:26, 24F
文章代碼(AID): #1Ds8FoVu (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Ds8FoVu (Soft_Job)