Quel est le moyen le plus rapide pour concaténer deux Chaînes de caractères en Java?

Quel est le moyen le plus rapide pour concaténer deux Chaînes de caractères en Java?

je.e

String ccyPair = ccy1 + ccy2;

Je suis en utilisant cyPair comme une clé dans une HashMap et il est appelé dans un très boucle pour récupérer les valeurs.

Quand j'ai le profil, puis c'est le goulot d'étranglement

java.lang.StringBuilder.append(StringBuilder.java:119)  
java.lang.StringBuilder.(StringBuilder.java:93)
  • goulot d'étranglement dans la concaténation de chaîne? Cela voudrait dire tous les programmes java sont d'avoir des problèmes de performance. Ne pas microoptimize.
  • Mais il a présenté le code, et c'est le goulot d'étranglement. Ce n'est pas de la micro-optimisation, ni l'optimisation prématurée, c'est juste de l'optimisation.
  • en fait c'est l'une des questions. Les véritables enjeux de la devise génération de code dans la boucle. Il contient plusieurs allocations de mémoire+barrières +pas si vite le code de hachage (14 mul+ajouter; en supposant devise paires sont comme des "eur/usdusd/jpy"), puis d'égal à égal. À l'aide d'une holding paire w/ références pour les 2 chaînes seront beaucoup meilleure solution.
InformationsquelleAutor Dan | 2011-02-22