Le funzioni di prima classe in Scala possono essere una preoccupazione per allocare un ampio spazio di ammissione in JVM?

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

Domanda

Per quanto riguarda le funzioni di prima classe in Scala, è scritto nella programmazione del libro da Scala:

Una funzione letterale viene compilata in una classe che quando istanziata in fase di esecuzione è un valore di funzione.

Quando ci saranno molte funzioni di prima classe utilizzate in un programma, ciò influenzerà lo spazio di ammezione di JVM? Perché invece di semplici funzioni il compilatore sta generando classi per ogni variazione del valore della funzione (ad es. Nel caso di varie definizioni di funzioni parzialmente applicate).

È stato utile?

Soluzione

Il profilo di memoria sarà sicuramente diverso da quello dei normali programmi Java, anche se puoi sintonizzare praticamente qualsiasi parametro di memoria su JVM.

Tutto quello che posso dire, tuttavia, è che in un anno di profondo coinvolgimento nella comunità di Scala, ho mai Ho visto qualcuno lamentarsi di questo.

Altri suggerimenti

Non ho sostanziazione per questo, ma la mia sensazione è che se stai scrivendo un programma non banale, la quantità di spazio occupata per i dati "reali" del tuo programma sminuirà notevolmente la quantità di spazio occupato da alcuni Definizioni extra funzionalità come di classe.

In altre parole, non me ne preoccuperei.

È un fatto matematico comprovato che il numero di classi che genera con funzioni di prima classe sarà in grado di avvicinarsi asintoticamente, ma non superare mai, il numero di classi compilate nella distribuzione completa della molla. Non preoccuparti, quei pionieri affronteranno prima le questioni di ammessi!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top