Disons que j'ai appelé replaceAll() sur une grosse chaîne qui a remplacé 1 000 instances correspondantes. Cela signifie-t-il que 1000 chaînes ont été créées et réaffectées en cours en raison de l'immutabilité des chaînes? Y a-t-il des alternatives plus rapides?La performance de string.replaceAll() souffre-t-elle de l'immuabilité de la chaîne?
6
A
Répondre
13
-1
vous pouvez essayer avec un StringBuffer/StringBuilder, car ils sont mutablesCharSequence s:
CharSequence veryBigString = new StringBuilder();
Pattern.compile(regex).matcher(veryBigString).replaceAll(replacement);
+1
Peu importe si 'veryBigString' est mutable; 'replaceAll()' créera toujours un nouveau StringBuffer pour faire le travail, et retournera le résultat en tant que nouvelle chaîne. Était-ce votre argument? –
Questions connexes
- 1. Java String.replaceAll regex
- 2. performance de jointure de chaîne python
- 3. Performance de rendu de la forme de la Terre virtuelle
- 4. Chaîne de concaténation vs String Builder. Performance
- 5. Comment remplacer un caractère plus en utilisant la méthode String.replaceAll de Java
- 6. A propos de la performance de la dynamique CRM
- 7. Obtenir la valeur de chaîne dans la classe de chaîne
- 8. Quelle est la performance de StackFrame?
- 9. MySQL sous-sélectionne la question de performance?
- 10. Extrait de la chaîne
- 11. fractionnement de la chaîne
- 12. Windows Processus inactif interférant avec la mesure de la performance
- 13. Performance et le col de la bouteille de Zend_Search_Lucene?
- 14. L'avantage de la performance dans ce modèle de données?
- 15. Outils de débogage pour la performance de l'application web
- 16. Extraire la sous-chaîne de la chaîne avec Regex
- 17. Format de l'heure de la date de la chaîne?
- 18. Travaux pour améliorer la disponibilité et la performance de la base de données
- 19. Besoin de l'utilisateur pour entrer la chaîne/vérifier la longueur de la chaîne (C++)
- 20. Remplacement de la chaîne Oracle
- 21. Analyse de la chaîne SQL
- 22. Mots-clés de la chaîne
- 23. Numéro de correspondance à la fin de la chaîne
- 24. Convertir la liste (de l'objet) en Liste (de la chaîne)
- 25. C analyse syntaxique de la chaîne de (style python)
- 26. Performance: encapsuler une chaîne dans une structure?
- 27. Quelle est la performance de F # par rapport à C#?
- 28. Que diriez-vous de la performance entre PATINDEX et CHARINDEX?
- 29. comparaison de la performance du code, threaded contre non-threaded
- 30. Augmentation de la performance pour le sql dans informix
Gardez à l'esprit que la création d'un nouveau modèle peut être coûteux. Selon la fréquence à laquelle il est appelé, il peut être plus efficace de créer le motif une fois et d'en créer un. Comme toujours, le profilage de votre application vous indiquera si cela est nécessaire ou une optimisation prématurée. – AngerClown