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

看板Soft_Job作者 (東周小星星)時間14年前 (2011/05/26 00:21), 編輯推噓2(2019)
留言21則, 11人參與, 最新討論串48/52 (看更多)
我是很重視OO的人, 我手上的程式是一定會物件化的, 而且物件化得很徹底, 一個物件不超過500行, 我把沒有物件化的程式重寫後, 效能不但沒有變差, 反而比前人寫的版本快非常多, 我這樣講吧...非OO的寫法或許會比OO的寫法快, 但這影響效能的因素根本不到10%, 最主要影響效能的因素是本身寫法的問題, 一樣是物件化, 為什麼要一直new東西出來? 明明就可以只new一個物件,然後不斷的重覆利用就好了, 真的沒用到時再釋放掉, 這樣效能不就好很多了? 我舉個我親身看到的例子, 有人寫黑白棋的程式呀, 每下一步棋, 就new一個黑棋或白棋在棋盤上, 好死不死那人記憶體釋放又沒做好, 下到第五回合後,就越來越lag,不久就當機了... 但我的寫法是棋盤上每一格都有黑棋,白棋,沒棋三種狀態, 我只要new一個棋盤出來就好了, 之後都只是狀態的改變, 不會再new東西出來, 這樣的寫法, 就算玩到100回合也玩得下去, 記憶體也不會爆, 也不會lag... 說到這裡,是不是可以證明OO也是可以寫得很有效能呢? 所以我想你的主管可能對OO沒有很了解, 想像一下, 想像我們在做一部車, OO就只是讓一部車分成許多零件再組合起來, 零件好,組合得好,這部車仍然可以是世界上最快的車, 而且可以被修理,可以把零件任意更換, 效能差,我相信90%是因為程式碼沒寫好或架構有問題, 所以我很強調程式的內心功和working smart, 這才是提升效能的關鍵 ※ 引述《pandaforme (建 建)》之銘言: : 事情這樣的 : 因為公司的主管很排斥物件導向概念和新的技術 : 認為程式擁有太多class,必須要一直new產生一個新的instance,會花費很多效能!? : 引用structs架構也會拖慢效能!? : 所以公司的程式充斥一堆static的function和自己硬幹的詭異方法... : 主要的理由是因為公司的程式是裝在一台伺服器,當作產品賣出 : 為了節約硬體資源,所以要避免過多的物件導向概念... : 想請問一下各位前輩事實真的如此嗎? : 假如是以前的電腦還有可能有這樣的問題發生,但是現在電腦都那麼快 : 頻繁的產生instance會影響到系統效能嗎? : 而且沒有物件導向概念的程式,真的會看到吐血,所有東西都混雜在一起! : 之後,維護起來一定是個大災難,連基本的分層概念都沒有... : 麻煩有相關經驗的前輩,提供一下相關資訊, : 真的將系統物件導向化會導致系統效能下降嗎? : 謝謝~ -- 寫程式是一種信仰, 寫得出來是一種藝術, 寫不出來是一種哲學。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.184.9.109

05/26 00:36, , 1F
不過前面的討論似乎都是以"同樣設計良好的程式"為前提 XD
05/26 00:36, 1F

05/26 00:45, , 2F
當大家都是武林高手時,還需要計較手上的劍什麼劍?
05/26 00:45, 2F

05/26 00:50, , 3F
推樓上
05/26 00:50, 3F

05/26 00:52, , 4F
當大家都是武林高手時...兵器就是勝負重點啦
05/26 00:52, 4F

05/26 00:56, , 5F
兵器是看對手使的。
05/26 00:56, 5F

05/26 00:57, , 6F
我只會OO一樣武器...
05/26 00:57, 6F

05/26 01:41, , 7F
不到10% 哪裏來的? 要是不到10%, 寫effective C++的是笨
05/26 01:41, 7F

05/26 01:42, , 8F
蛋就對的了.
05/26 01:42, 8F

05/26 09:43, , 9F
都是武林高手的時候,看來手持組語神兵的高手會勝出?
05/26 09:43, 9F

05/26 10:07, , 10F
一般來說是...XD
05/26 10:07, 10F

05/26 10:10, , 11F
當都是武林高手的時候,武器當然變成最關鍵的東西了.
05/26 10:10, 11F

05/26 10:12, , 12F
大家都拿劍 人家拿鐵劍你拿青銅劍你怎麼贏.都是高手的時候..
05/26 10:12, 12F

05/26 11:10, , 13F
但如果加入兵器保養、揮動速度…等,也許結果還不一定?
05/26 11:10, 13F

05/26 11:11, , 14F
上面是亂想的 XD
05/26 11:11, 14F

05/26 11:50, , 15F
事實上劍法本來就注重避免碰撞所以材質不重要(完全題外
05/26 11:50, 15F

05/26 12:13, , 16F
所以才特別用"鐵"跟"青銅", 重量,彈性,鋒利度,才說武器
05/26 12:13, 16F

05/26 12:14, , 17F
差異,當雙方都是高手,武器優勢你怎麼比?
05/26 12:14, 17F

05/26 12:17, , 18F
我最想知道,不到10%的數據哪裏來. 要是不到10%
05/26 12:17, 18F

05/26 12:18, , 19F
effective c++的和Accelerated C++
05/26 12:18, 19F

05/26 12:18, , 20F
就白寫了,哪兩位作者是白痴,無聊亂寫書.
05/26 12:18, 20F

05/26 20:07, , 21F
推樓上... 拿了絕世好劍也不代表就是一統江湖了...
05/26 20:07, 21F
文章代碼(AID): #1DtIodvi (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1DtIodvi (Soft_Job)