2011-08-29 14 views
6

È correlato alla garbage collection? Sembra strano che funzioni così bene in tutte le altre aree e fallisca miseramente nel consumo di memoria.Perché Scala consuma 2-3 volte più RAM dei concorrenti nel gioco Benchmark per Computer?

Link: http://benchmarksgame.alioth.debian.org/u32/scala.html

+0

L'immaturità, forse? Inoltre, molti costrutti in Scala funzionano molto male. –

+0

Collegamento ad alcuni dati reali? –

+0

Direi che questo: http://shootout.alioth.debian.org/u32/scala.php. –

risposta

9

Senza affrontare ogni singolo caso, in generale, Scala è felice di creare molti oggetti, piccoli e grandi, per rendere la vita più facile. Se il tuo nello specifico il programma ha un piccolo ingombro di memoria, allora Scala può essere solo leggermente meno compatto di Java. Altrimenti, se stai cercando di rendere il programma veloce e facile da codificare (ma non fai specificamente attenzione alla memoria), tenderà ad essere più grande.

Se qualcuno volesse creare versioni di programmi di memoria di piccole dimensioni e inviarli, sono sicuro che sarebbero stati accettati.

+0

Forse -XX: + DoEscapeAnalysis sarebbe di aiuto per questi piccoli oggetti (oggetti wrapper per impliciti): http://www.decodified.com/scala/2010/08/27/scala-rich-wrapping-performance.html oppure forse quell'ottimizzazione è già inclusa in -XX: + AggressiveOpt? – robinst

+0

@robinst Forse l'esecuzione di Scala su Java 7 con -server sarebbe d'aiuto anche ... –

+0

@Daniel C. Sobral - Forse guardare come sono stati eseguiti i programmi e imparare che i programmi di Scala sono stati eseguiti su Java 7 con -server potrebbe aiutare Di Più. – igouy

Problemi correlati