Влияние определений классов Scala на постоянное пространство

Стандартный шаблон, используемый в библиотеке классов Scala, - это определение классов внутри классов и признаков. И большинство операций с объектами родительских классов приводят к созданию объектов этих внутренних классов. Каждый внутренний класс отличается для каждого объекта.

например. См. Исходный код scala.io.Source и LineIterator. Я думаю, что это самый простой в стандартной библиотеке.

Как указано в документах ниже, это два разных класса.

val s1:Source = ...
val s2:Source = ...
s1.getLines.getClass != s2.getLines.getClass //true if s1 != s2

Это означает, что создаются два класса.

Поскольку вся библиотека коллекции использует один и тот же шаблон, каковы эффекты в пространстве permgen для длительных процессов?

5
задан Khurram Ijaz 18 August 2011 в 19:30
поделиться