Diciamo che ho chiamato replaceAll() su una stringa grande che ha sostituito 1.000 istanze corrispondenti. Significa che 1000 stringhe sono state create e riassegnate durante il processo a causa dell'immutabilità delle stringhe? C'è qualche alternativa più veloce?Le prestazioni di string.replaceAll() risentono dell'immutabilità delle stringhe?
6
A
risposta
13
-1
si può provare con un StringBuffer/StringBuilder, dal momento che sono mutabili CharSequence s:
CharSequence veryBigString = new StringBuilder();
Pattern.compile(regex).matcher(veryBigString).replaceAll(replacement);
+1
Non importa se 'veryBigString' è modificabile; 'replaceAll()' creerà comunque un nuovo StringBuffer per eseguire il lavoro e restituirà il risultato come una nuova String. Era questo il tuo punto? –
Problemi correlati
- 1. penalità di prestazioni delle stringhe come chiavi primarie?
- 2. Java: confronto di stringhe e stringhe - Prestazioni
- 3. Le stringhe Interning aiutano le prestazioni in un parser?
- 4. Regex utilizzando Java String.replaceAll
- 5. String.replaceAll Strange Behavior
- 6. SOLR ottimizzazione delle prestazioni
- 7. Quale tra l'interpolazione delle stringhe e il string.format è migliore per le prestazioni?
- 8. Trova sottosequenze di stringhe all'interno delle stringhe
- 9. Negazione delle stringhe utilizzando le espressioni regolari
- 10. Ottimizzazione delle prestazioni di Lucene
- 11. Aumento delle prestazioni di BCrypt
- 12. Sovraccarico delle prestazioni di AOP
- 13. Le chiavi esterne possono danneggiare le prestazioni delle query
- 14. Utilizzo di funzioni o metodi in String.replaceAll() regex di Java
- 15. Redis Ottimizzazione delle prestazioni
- 16. rallentamento delle prestazioni di SqlDataReader
- 17. Tracciamento delle prestazioni ORM
- 18. SignalR Contatore delle prestazioni non visualizzato nel monitor delle prestazioni
- 19. Miglioramento delle prestazioni SQLite
- 20. Quali sono le regole per l'internamento delle stringhe di cpython?
- 21. F # ha le sue librerie di manipolazione delle stringhe?
- 22. Pattern di manipolazione delle stringhe
- 23. Ottimizzazione delle prestazioni delle prese Java
- 24. Conseguenza delle prestazioni delle funzioni membro volatile
- 25. Normalizzazione delle stringhe con String.ToUpperInvariant()
- 26. C# manipolazione delle stringhe
- 27. Test automatico delle prestazioni delle librerie Scala
- 28. Sovraccarico delle prestazioni delle librerie javascript
- 29. Java 8: l'operazione di join delle stringhe ha un impatto significativo sulle prestazioni
- 30. Strano comportamento delle prestazioni
tenere a mente che la creazione di un nuovo modello può essere costoso. A seconda della frequenza con cui viene chiamato, può essere più efficiente creare il Pattern una volta e creare un Matcher da questo. Come sempre, la profilatura della tua app ti dirà se è necessario o un'ottimizzazione prematura. – AngerClown