Mi sono sempre chiesto, perché Java richiede di impostare manualmente la dimensione dell'heap? Avevo l'impressione che i programmi scritti in altre lingue assegnassero solo la quantità di memoria necessaria per l'esecuzione del programma fino a quando il sistema operativo non fosse più in grado di allocare.Perché è necessario specificare la dimensione heap Java?
Nel mondo Java è necessario impostare la dimensione heap, stack e permgen. Mentre questo è abbastanza semplice dimenticare di aumentare questi numeri "abbastanza grandi" è il motivo numero 1 che ho visto i server andare giù.
Perché non è possibile dire a Java di far crescere heap/stack/permgen tanto quanto è necessario nel tempo?
Hai una fonte per il primo punto? Non ho mai sentito la cosa "java era intesa per scrivere app web" prima (non che io abbia approfondito la storia di java, o ...) – Mike
Santo malcontento.Java proveniva da Oak, il che significava implementare un software di set-top box, come il tipo che si potrebbe avere nei sofisticati sintonizzatori TV via cavo. E per quanto riguarda la raccolta dei dati inutili, i rifiuti vengono raccolti quando l'oggetto non è accessibile e non quando vengono raggiunti i limiti di memoria. –
@Edwin Buck: 'I dati inutili vengono raccolti quando l'oggetto non è accessibile, non quando vengono raggiunti i limiti di memoria 'Vero, ma non sono" immediatamente "GCd. La velocità di esecuzione dipende dalla dimensione dell'heap e può essere estremamente importante per le prestazioni. –