Scalaクラスライブラリで使用される標準パターンは、クラスと特性内のクラスの定義です。親クラスのオブジェクトの操作の大半は、それらの内部クラスのオブジェクトが作成される結果になります。各内部クラスは、オブジェクトごとに異なります。perm gen空間でのScalaクラス定義の効果
scala.io.SourceおよびLineIteratorのソースを参照してください。私はこれが標準ライブラリの中で最もシンプルなものだと思います。
以下のドキュメントには、2つの異なるクラスがあります。
val s1:Source = ...
val s2:Source = ...
s1.getLines.getClass != s2.getLines.getClass //true if s1 != s2
意味は2つのクラスが作成されます。
コレクションライブラリ全体で同じパターンが使用されているため、長期実行プロセスのpermgenスペースにどのような影響がありますか?