C'è un modo per concatenare due stringhe (non definitive) senza allocare memoria?Concatenazione di stringhe senza allocazione in java
Per esempio, ho questi due stringhe:
final String SCORE_TEXT = "SCORE: ";
String score = "1000"; //or int score = 1000;
Quando ho concateno queste due stringhe, viene creato un nuovo oggetto String
.
font.drawMultiLine(batch, SCORE_TEXT + score, 50f, 670f);//this creates new string each time
Poiché questo viene eseguito nel ciclo di gioco principale (eseguito ~60 volte in un secondo), ci sono molte assegnazioni.
Posso farlo in qualche modo senza allocazione?
Questo causa effettivamente un problema di prestazioni, o stai facendo [ottimizzazione prematura] (http://c2.com/cgi/wiki?PrematureOptimization)? – Jesper
Sì, in realtà causa problemi di prestazioni, a causa del gc. Il gioco è per dispositivi mobili, e su dispositivi più lenti, gc causa il calo dei fps ... – pedja
@ Kenneth Clark, il formato String crea alcuni nuovi oggetti. per esempio. 'Formatter',' Pattern' ... – pedja