作者Wolfken ()
看板Soft_Job
標題Re: [閒聊] 為什麼java的使用率比較高?
時間Tue Dec 22 09:28:07 2015
※ 引述《sunlights (sunlights)》之銘言:
: : 看起來C#的效能是最優的..為什麼
: : java的使用率仍是超越.net的呢?
: : http://tinyurl.com/qyos7vg
: 有人說java連資料庫部份沒用pool所以會很慢..
: 我加了pool commons-dbcp2-2.0.1.jar
: import org.apache.commons.dbcp2.BasicDataSource;
: BasicDataSource dataSource = new BasicDataSource();
: dataSource.setDriverClassName("com.mysql.jdbc.Driver");
: dataSource.setUrl("jdbc:mysql://localhost:3306/xxxx");
: //dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
: //dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
: //dataSource.setDriverClassName("net.sourceforge.jtds.jdbc.Driver");
: //dataSource.setUrl("jdbc:jtds:sqlserver://localhost/xxxx;instance=SQLEXPRESS;useUnicode=true;characterEncoding=UTF-8");
: dataSource.setUsername("user");
: dataSource.setPassword("pass");
: 新的測試資料如下
: select 13446 data use mysql
: java 0.052(原0.054)
: loop select 21 times use mysql
: java 0.054(原0.143)
: select 13446 data use oracle
: java 0.06(原2.36)
: loop select 21 times use oracle
: java 0.096(原0.335)
: select 13446 data use mssql(express)
: java 12.435(原6.26)
: loop select 21 times use mssql(express)
: java 12.432(原129.451)
: 這樣測起來資料庫速度並沒有比php和.net快...
: 是不是哪裡有問題??
: 還是事實就是如此呢?
: ps:因為php7連mssql的dll還沒有.所以我mssql用php5測
效能並非唯一考量,有時候甚至不是前三考量
就算效能差一倍好了,時間很短的時候根本沒差
10ms跟20ms差一倍,實際感覺上根本毫無差別
實務上大部份運算都是小量的,也就是說會在100ms以內結束,在這範圍內效能並非重點
要一次select一萬筆以上資料的情況很少
你什麼時候進一個網頁還是一個app,一次顯示一萬筆給你的?沒有嘛
都會分批讀取,分頁顯示呀
實務上考量,通常前幾優先是開發速度,開發與維護成本,平台成熟度,使用者體驗
接下來是第三方library多不多,生態圈大不大,技術普及度,好不好找到文件跟支援
效能是在以上都滿足之後再在已經選擇的語言跟平台上尋求最佳化
除非是某些特殊例子,像是硬體條件很有限如物聯網的小sensor
效能才會被拉到比較高的優先順序
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.210.239
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1450747690.A.49C.html
1F:推 typepeter: 中肯 程式本質是工具 12/22 09:33
2F:→ femlro: 韌體吧 韌體就很要求時間複雜度@@ 12/22 09:58
3F:→ femlro: 早期電腦 時間空間複雜度都很重要 現在連手機都2G RAM 12/22 09:59
4F:→ femlro: 時間複雜度也被CPU快速升級重要話漸漸被稀釋 12/22 09:59
5F:推 femlro: 彈性(維護)跟開發速度真的重要很多@@ 12/22 09:59
6F:→ CaptainH: java寫起來好囉唆...有沒有比較好寫又能轉成java byteco 12/22 10:02
7F:→ CaptainH: de的語言啊? 試過 scala 可是編譯速度太慢了 12/22 10:02
8F:推 Killercat: 那只好推groovy了 12/22 10:50
9F:→ Killercat: ....不過groovy好像也沒有快到哪去 12/22 10:56
10F:推 candyhu079: 可以試試kotlin 12/22 11:11
11F:→ dreamnook: 複雜度其實還是能處理就處理 12/22 11:57
12F:→ dreamnook: ....雖然可能是最近寫code寫太醜所以複雜度影響超明顯 12/22 12:00
13F:→ dragonyy: Java 8 (+ lambda) 已經沒有那麼囉嗦囉 12/22 12:21
14F:→ Lordaeron: 嗯,每個人的實務不一樣. 12/22 12:58
15F:推 Killercat: kotlin現在算獨家規格(JetBrains),還沒普及以前 12/22 16:27
16F:→ Killercat: 拿來玩玩看看就好,還是等普及一點再用在工作上 12/22 16:27
17F:→ ntddt: 真的只追求效能的話就都用最低階的寫~ 12/22 20:49
18F:→ Lordaeron: 以上的說法,現在最適合的就是:PYTHON 12/22 21:03
19F:→ Lordaeron: 請改用PYTHON,就FULLY MATCH 了. 12/22 21:03
20F:推 leicheong: 的確. 求資料庫存取效率倒不如在SQL層面上弄. 12/22 21:21
21F:→ leicheong: 今天剛改了一個SP, 本來用cursor跑2分36秒, 我改用 12/22 21:21
22F:→ leicheong: pivot後只需14秒... 12/22 21:22
23F:推 GoalBased: 最近改了一個功能從本來2小時變成5分鐘內 12/22 22:33
24F:→ GoalBased: 因為之前有BUG阿~~~ 12/22 22:33
25F:→ leicheong: 我的那個倒不是有bug, 只是現在有更高效率的做法而已. 12/22 23:01