Ho un gran numero di coppie nome-valore (circa 100k) che ho bisogno di memorizzare in una sorta di cache (ad esempio una mappa hash) dove il valore è una stringa con una dimensione media di circa 30k byte.Ottimizza l'utilizzo della memoria di una raccolta di stringhe in Java
Ora so per certo che un gran numero di valori ha esattamente gli stessi dati di stringa. Per evitare di dover allocare più volte i dati di stringa identici, vorrei in qualche modo riutilizzare una stringa allocata in precedenza, consumando quindi meno memoria. Inoltre, questo deve essere ragionevolmente veloce. Ad esempio, la scansione di tutti i valori assegnati in precedenza uno per uno non è un'opzione.
Qualche raccomandazione su come risolvere questo problema?
james? come in JT? – kdgregory
sì, è JT. troppo divertente per aver scritto il tuo codice per te. – james
No, questo è un consiglio molto BAD. La maggior parte di questi commenti si riferisce a problemi piuttosto vecchi per le JVM ormai obsolete. Non c'è assolutamente niente di sbagliato in String.intern() per stringhe condivise di lunga durata. Molto meno di problemi con sostituzioni roll-your-own. – StaxMan