Können erstklassige Funktionen in Scala ein Problem darum sein, einen großen Permgen-Raum in JVM zuzuweisen?

StackOverflow https://stackoverflow.com/questions/1845266

Frage

In Bezug auf erstklassige Funktionen in Scala wird es in der Buchprogrammierung von Scala geschrieben:

Ein Funktionsliteral wird in eine Klasse zusammengestellt, die bei der Instanziierung zur Laufzeit ein Funktionswert ist.

Wenn es viele erstklassige Funktionen in einem Programm geben wird, wirkt sich dies auf den Permgen-Raum des JVM aus? Denn anstelle von einfachen Funktionen generiert der Compiler Klassen für jede Variation des Funktionswerts (z. B. bei unterschiedlichen Definitionen teilweise angewandter Funktionen).

War es hilfreich?

Lösung

Das Speicherprofil wird sicherlich anders sein als das von normalen Java -Programmen, obwohl Sie so ziemlich jeden Speicherparameter auf dem JVM einstellen können.

Ich kann jedoch nur sagen, dass ich in einem Jahr tiefgreifender Beteiligung in der Scala -Community habe, habe ich noch nie Ich habe gesehen, dass sich jemand darüber beschwert.

Andere Tipps

Ich habe keine Begründung dafür, aber ich habe das Gefühl, dass, wenn Sie ein nicht triviales Programm schreiben Zusätzliche Funktionsfunktionen Definitionen.

Mit anderen Worten, ich würde mich darüber keine Sorgen machen.

Es ist eine nachgewiesene mathematische Tatsache, dass die Anzahl der Klassen, die Sie mit erstklassigen Funktionen generieren, asymptotisch nähern können, aber niemals die Anzahl der kompilierten Klassen in der vollen Frühlingsverteilung übertreffen. Keine Sorge, diese Pioniere werden sich zuerst mit den Permgen -Problemen befassen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top