作者pandaforme (建 建)
看板Soft_Job
標題Re: [請益] java的效能!?
時間Sat May 21 23:27:06 2011
非常感謝各位前輩相關的資訊
小弟公司的主要產品是一台GATEWAY(公司開發的軟體裝在一台伺服器上),
該GATEWAY的架構前端會有一個過濾器(類似IPTABLE功能,用c寫的),
可以擋住非法或不允許的網路連線
當允許某網路連線就可以進來存取資料庫資料,存取資料的模組是用java寫的
存取資料模組本身就一個web service,常駐在伺服器內,隨時服務允許的網路連線
至於資料庫是MySql
為了避免效能低落,公司前同事認為不要new instance就可以大幅提升效率,
所以在存取資料模組的class中裡面的function都為static...
另一方面為了好讓使用者管理和設定,有做一個web的管理介面出來,
jsp和其對應的servlet偶合度相當高,沒有分層的概念...
我被交派的工作是從資料庫擷取資料出來,再呈現到頁面上
在實作過程中,採用structs framework,和一些基本的物件導向概念
例如:class和class之前溝通會用interface去接...等
在code review過程中,主管問我:為什麼從資料庫擷取出來的資料要轉成data model,
這樣當很多人使用這項功能,不就要頻繁new instance,產品的效能會被拖慢!
主管強調盡量不要去new instance,因為這是overhead!
也強調不要太物件導向,interface也不用,直接溝通就好
我們公司產品強調效能,太物件導向會導致效能低落
盡量也不要用structs framework,這也有可能拖慢效能的原因
在我過去的工作經驗和認知中,抽interface和將資料庫的資料轉成data model
是一件在平凡不過的事,怎麼會變成影響效能的元凶?
根據以往的工作經驗,沒有做好基本的分層,盡量降低偶合度,
這將會是一個大災難的開始!
當時程再趕,多人同時開發,再經過幾次同事的來來去去,
程式碼將會變成一個大怪物
但是這個論調主管不接受,可能目前只有兩個人在開發的關係吧...
職場上,我的工作經驗和年紀對公司都是菜鳥,
所以我也沒有足夠力足點去說服我主管
另外一方面,我剛到這家公司不久,對公司沒什麼貢獻度,
憑什麼要人家信服你的說法
技術上,我想...這個就有得吵了,畢竟主管最大...
真的非常感謝回文的前輩,讓我學到不少東西!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.17.182
※ 編輯: pandaforme 來自: 180.176.17.182 (05/21 23:31)
→ TonyQ:err , ORM 的效能一直都是論戰的重點項目之一啊 05/21 23:30
※ 編輯: pandaforme 來自: 180.176.17.182 (05/21 23:32)
→ deuter:"認為...就可以大幅提升效率", 效率瓶頸是要profile出來的 05/21 23:35
→ deuter:不是用猜的 05/21 23:35
→ james732:推樓上,出現了「認為」兩個字就讓人覺得很沒說服力 XDD 05/21 23:39
→ loveme00835:但是真的跑出報表, 主管會採納? 還是難啦! 05/21 23:40
推 kimkao:如果要ORM確實是要吃額外的Memory的..如果頻繁資料轉換 05/22 00:00
→ kimkao:且資料完全不能有cache重用機制的話 那可得好好考慮了 05/22 00:01
推 SHANGOYANYI:感覺你主管並不想讓程式長太大XD 05/22 00:51
→ pandaforme:管理層面就算了,只是小職員也沒有多大影響力 05/22 01:00
→ pandaforme:但是技術方面我想確認 這樣做法到底是不是會沒有效率 05/22 01:00
→ bravomao:吃記憶體個人覺得實屬正常,我想再吃記憶體的前提之下, 05/22 01:53
→ bravomao:應該要注意的是GC的時間、演算法、generation的分配問題 05/22 01:54
→ bravomao:單元測試的時候不大可能會遇到這類的問題,但是大規模整 05/22 01:55
→ bravomao:合測試之下,很多問題是程式與環境息息相關的。 05/22 01:56
推 bravomao:我比較好奇的是...這個系統的延展性要求以及商業定位是否 05/22 02:05
→ bravomao:有需要很大的空間?如果不是,簡單不就是最好的嗎? 05/22 02:06
推 yauhh:你的看法,就跟這次談的效能問題一樣: 他們不應該一開始就 05/22 07:28
→ yauhh:只想一次做到效能最優的軟體; 你也不必一開始就費心針砭公司 05/22 07:29
→ yauhh:做事的方法. 05/22 07:29