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

看板Soft_Job (軟體人)作者 (latw)時間15年前 (2011/05/21 11:07), 編輯推噓1(1027)
留言28則, 4人參與, 最新討論串10/52 (看更多)
※ 引述《iincho (世界的盡頭)》之銘言: [我把我自己的先刪掉比較好看XD] : Android會慢並不是因為用VM的關係,雖然有一點影響, : 主因還是背景大家可以亂開一堆service同時跑。 : iOS會順也和Objective-C沒有太大關係,主要是因為大部份的情況 : 並不允許使用者的程式多工。 阿 這一點我不同意... android在初始環境(只有基本程式,即repo下來code),順暢度就差了,更別說使用者 怎麼去玩他, 再去追他的code,還真的很難相信效能會好XD ARM的CPU同時脈下效能絕對比x86差,又多一層VM,我不相信效能會比沒有VM的好, 如果不是如此,為何google每次的改版都是java轉C++, 沒有例外,更沒看過C++轉Java. 程式多不多工那是OS的事,難道iOS本身只有單線程? : 問題是考慮到維護,用C/C++的成本比asm低多了。 : 同樣的程式,同樣的演算法,但是開發時間可能不一樣.... 但是C/C++開發時間跟Java應該不會差太多吧....XD (好吧,沒指標的語言好難用,對我來說...) : 喔,主要有兩點,因為用Java VM可以很輕鬆的隔開不同的硬體,手機可不是 : X86這種大家都是跑一樣的CPU,所以之前看WM的程式下載的時候都會標示 : 這是哪一個機型可以用的binary。雖然說現在ARM看起來有機會統一世界但是 : 這個決定還不算太離譜。 ARM?我怎麼看離他原始的理念越來越遠,道是越來越接近x86的理念 << 用電換效能 >> XD 行動裝置用ARM不就是因為他省電嗎? : 另外就是你提到的,Android Dalvik VM這層做的事其實很少,大部份的事都在 : 底下的C++層做完,加上用的硬體通常比較暴力,效能看起來是還OK。 早期(例如1.6)還是用java.是後期才都改用C++....跟上面我說的一樣,還不是因為 java效能不好,不然我找不到其他的理由. 況且同樣的機子放到不同版本,"一般人"都可以"明顯"感覺順當度改變了... : 另外幫Android Middleware這層平反一下,基本上除了Google之前買的那堆 : 奇怪程式(OpenCore之類的),Android Middleware這層的C++用的相當漂亮, : 沒有太多不必要的overhead,而且template用的很恰當,只可惜一般系統廠 : 的RD通常是看不懂,我自己看到最後才赫然發現這玩意根本就是M$ ATL那一套的 : 梗再玩一次而已。中間這層我個人認為比之前embedded linux設計上好非常多。 : 不過我認為最大的問題卡在通常處理這層的RD大部份只熟悉C,所以看到那一堆 : 看不懂的code就...zzzz。 Middleware的部分沒幾個會去動吧... 慘的是上面的java code... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.237.96

05/21 16:29, , 1F
我認為你沒搞懂 google為啥要使用jni
05/21 16:29, 1F

05/21 17:31, , 2F
除了把linux底層event轉成java可用的data以外,我真的不知道
05/21 17:31, 2F

05/21 17:31, , 3F
1.6到2.2的touch event都是開/dev下取玩直接轉,由java去分析
05/21 17:31, 3F

05/21 17:31, , 4F
2.3把分析這邊都變成C++ code....
05/21 17:31, 4F

05/21 20:25, , 5F
WP7也是透過VM跑的, 可以觀察WP7的效能
05/21 20:25, 5F

05/21 20:27, , 6F
老實說不是很想戰..XD, C++跑的一定比Java快...
05/21 20:27, 6F

05/21 20:28, , 7F
問題是上層用VM是一個很不錯的選擇,尤其在手機上...
05/21 20:28, 7F

05/21 20:28, , 8F
簡單來說,你根本沒搞懂為什麼Google最上面要跑VM..
05/21 20:28, 8F

05/21 20:29, , 9F
不過過去有再玩PDA的應該都知道是怎麼回事...
05/21 20:29, 9F

05/21 21:56, , 10F
我實在不懂還請指教.在資源有限的環境還要多個VM吃資源.
05/21 21:56, 10F

05/21 21:56, , 11F
加上google的一連串patch的做法都是傾向減少java往C++靠.
05/21 21:56, 11F

05/21 21:58, , 12F
換個角度思考好了,為什麼目前"所有"android都被抱怨流暢度?
05/21 21:58, 12F

05/21 21:59, , 13F
我不相信三爽/MOTO/HTC/..的RD都是白癡,不知道要怎麼調教java
05/21 21:59, 13F

05/21 22:03, , 14F
我也不知道"C++跑的一定比Java快"怎麼戰? XD
05/21 22:03, 14F

05/21 23:20, , 15F
VM的用途是要跨平台, 就算是ARM, 指令集也不完全相容
05/21 23:20, 15F

05/21 23:22, , 16F
現在JIT普及, 可以進一步加速
05/21 23:22, 16F

05/21 23:59, , 17F
喔!我大概知道了.謝謝.
05/21 23:59, 17F

05/22 00:06, , 18F
你說的系統廠RD不知道怎麼調校,我可以和你說你是對的..XD
05/22 00:06, 18F

05/22 00:07, , 19F
你去問那些RD Binder的架構和細節大概死八成...
05/22 00:07, 19F

05/22 00:07, , 20F
這些人最熟的是底下和硬體接的那塊, 上層是甚麼可以吃嗎??
05/22 00:07, 20F

05/22 00:08, , 21F
不過我還是不信,java能調到比C/C++快(逃~)
05/22 00:08, 21F

05/22 00:09, , 22F
一定不會比較快,不然現在出個NDK幹嘛?
05/22 00:09, 22F

05/22 00:10, , 23F
只是這種performance的損失和一個APK通吃所有機種的好處
05/22 00:10, 23F

05/22 00:10, , 24F
權衡下來是可以接受的,甚至可以說非常划算....
05/22 00:10, 24F

05/22 00:10, , 25F
你有看過當年一個機種一個binary的慘狀就不會意外...
05/22 00:10, 25F

05/22 00:13, , 26F
那乾脆學feature phone好了,ap跑java其他都C/C++,反正系統廠
05/22 00:13, 26F

05/22 00:13, , 27F
會調整指令集的差異....
05/22 00:13, 27F

05/22 00:14, , 28F
還是google就是正在往這個方向邁進XD
05/22 00:14, 28F
文章代碼(AID): #1Droo0sz (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 10 之 52 篇):
5
66
文章代碼(AID): #1Droo0sz (Soft_Job)