2014-06-17 2 views
2

스칼라의 스트림은 목록의 완벽한 대안처럼 보입니다. 거의 모든 주요 기능을 지원하며 더 빠르게 평가됩니다. 왜 지구상에 왜 목록으로 돌아갈 것을 선택합니까? 목록이 더 빨리 실행되는 특별한 경우가 있습니까? 스트림이 실행되지 않고 목록이있는 경우가 있습니까?스트림이 이상적입니까?

답변

2

과 유사합니다. Streams have a larger memory footprint. 빠른 평가를 수행하기 위해 추가 데이터 캐시를 유지하는 것처럼 들립니다. 또한

, 좋은 참조 : Stream vs Views vs Iterators

+0

이상적인 계산과 빠른 성능을 위해 더 많은 메모리를 사용하지 않습니다. ? – Bula

+0

예. 여기에 또 다른 좋은 참조가 있습니다 : http://stackoverflow.com/questions/5159000/stream-vs-views-vs-iterators – SWPhantom

+0

그러나 이것은 기억에 압박감이 없을 때 List를 사용하고 싶습니까? – Bula

1

this question about avoiding unnecessary computation, 나는 몇 가지 benchmarks했다. 모든 답변 중에서, 스트림은 Iterator보다 8 배 느리고, 가장 느린 응답보다 2 배 이상 느린 성능을 보였습니다. 스트림은 많은 오버 헤드를 추가하는 것으로 보입니다.