作者eieio (好多目標)
看板java
標題Re: Lambda 和Streams 可以慢5倍
時間Thu Dec 3 03:52:22 2015
※ 引述《Lordaeron (Terry)》之銘言:
: http://tinyurl.com/ndw5g39
: 這個看起來很慘!!
: 但
: http://tinyurl.com/ne83u8f
: 這個看起來, 又很好呢.
標題太誤導人了。我兩邊都仔細看了,stream 或 parallelStream 應該是較
佳的寫法。慢五倍的關鍵並不是 stream,而是 boxing/unboxing
integers.stream().reduce(...)
integers.stream().mapToInt(Integer::intValue).reduce(...)
上面兩個寫法,有先 mapToInt 就可以避免掉過多的 boxing/unboxing,速度
跟 for loop 差不多。
同樣的道理,下面這段 code 很不好:
String r = "";
for (String s : strs) {
r = r + s;
}
上面這段 code,每次 r = r + s 就會產生一個新的 String,效能會很低。
要避免產生無用的 String,要用 StringBuilder。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 131.107.174.119
※ 文章網址: https://www.ptt.cc/bbs/java/M.1449085945.A.3B0.html
→ longlongint: 不可修改內容的物件都要注意 12/03 06:02
→ eieio: good point 12/03 08:52
→ Lordaeron: 你要不要回文反駁一下? 做數據出來反駁? 12/03 11:27
→ eieio: 原文就有人提了,數據早更新了,你自己標題殺人怪我? 12/06 09:36