推 TheOneisNEO: btw我有一題用C ac時間居然是最慢的xdd 06/14 16:10
推 a26732300: 因為java有個jvm在下面編譯執行,速度上不可能會太快 06/14 16:53
推 LaPass: 是不是要執行的東西很短,而且連jvm起來的時間也算在內啊? 06/14 17:37
→ LaPass: java適合長時間運行的東西,因為新建一個jvm的代價算高, 06/14 17:38
→ LaPass: 我看過有jvm寫關於調校的書寫到,如果有個system call太常 06/14 17:38
→ LaPass: 呼叫,就用java寫過,用程式直接去叫,以避免頻繁建立jvm 06/14 17:40
Leetcode上的程式執行時間的確都很短 Java跑的話大多在350ms左右
→ robler: java的效率低落又不是新聞 06/14 19:26
推 chchwy: 樓上 Java論效率可是遠勝Python 06/14 21:00
我會覺得Java應該要勝過Python是因為之前看到一篇文章
那篇文章是Goole在解釋為什麼要建造一個Java的deep learning framework
上面說雖然Python開發快 但是最後真的要拿來大量運算還是要改寫成C
(因為Python不夠快)
而Java的則是速度本身就夠快 寫完之後不需要在改寫成C
單就這段敘述 Java跑起來應該要能夠比Py快才對 不然也沒開發這架構的必要
→ ntddt: 真有可能jvm起的時間都算進去了... 06/14 21:22
→ carlcarl: Java慢應該是很久以前的事了吧 06/14 23:01
→ cha122977: 慢要看和誰比 和C比誰都慢… 06/14 23:03
→ ken1325: java速度應該是比python快 慢的話或許是你程式寫法有問題 06/15 01:42
我這邊不是說我個人的速度
是指上面全部的Java使用者的平均 VS Python使用著的平均
這幾天寫了快二十題 只看到一題是Java平均贏過Python平均
正常情況下這兩種使用者給出的平均時間複雜度應該相近
所以我才覺得這應該不會是演算法的問題
而且仔細懷想一下 這之間差距好像都蠻固定
或許真的是jvm所造成的時間差也不一定
※ 編輯: education (59.127.173.173), 06/15/2015 07:22:47
推 ICBM: Java的jvm快在可以做jit,而要做jit之前,要先運行一段時間 06/15 19:50
→ ICBM: 做profiling。你執行時間短的程式跑在JVM上面,不僅沒有jit 06/15 19:51
→ ICBM: 優勢,還要浪費時間去啟動一個很大的JVM以及讓他做profiling 06/15 19:51
→ ICBM: 的資源與時間。 06/15 19:51
→ lachtchlee: Java是十足的動態語言 不是原波講的靜態語言 ! 06/15 22:31
推 s25g5d4: 哪個平行世界的 Java? 06/15 22:57
推 alog: python沒寫好memory leak包你上線GG 06/15 23:36
推 garychangb: java是做動態繫節跟運行jvm花時間吧 06/16 05:09
→ lachtchlee: 運行期間的安全保障機: classloader,verifier of the 06/16 12:44
→ lachtchlee: bytecode etc. 的門神機制需要花點時間 機->機制 06/16 12:47
推 lachtchlee: 回s25g5d4 Java是動態語言 但其數據類型是靜態的 ok 06/26 23:03