gibi gösterecektir Bu soruna ayrıca, eğer GC bir çerçeve sırasında devreye girerse gerçekten fark etmez. Bu çözümle geldim.
Arabelleği geriye doğru doldurursanız, yalnızca % 10
ve / 10
numaralarını tekrarlayabilirsiniz.
StringBuilder'a bir sayı ekleyen bir çalışma uygulaması, muhtemelen bunu yapmanın en iyi yolu değil, işe yarar ve hiçbir ayırmaya neden olmaz. Ayrıca yerine buraya
private char[] sbBuffer = new char[20];
private void appendInt(StringBuilder sb, int num) {
int i,j;
i = sbBuffer.length - 1;
if (num == 0) {
j = sbBuffer.length - 1;
sbBuffer[j] = (char) 48;
} else {
if (num < 0)
sb.append('-');
num = Math.abs(num);
while (num > 0) {
sbBuffer[i] = (char) (num % 10 + 48);
i--;
num /= 10;
}
j = i + 1;
}
sb.append(sbBuffer, j, sbBuffer.length - j);
/* clean up */
for (i = j; i < sbBuffer.length; i++)
sbBuffer[i] = 0;
}
şeyler görüntülediğiniz bir yol gibi gözüküyor sorunu olduğunu char döküm ve (ASCII içinde '0') 48 ekleme değerleri için başka bir karakter dizisini kullanabilirsiniz. Çöp toplayıcı veya dizgi tahsisi oyununuzu gerçekten engelliyorsa, maskeleyeceğiniz başka ciddi sorunlarınız var demektir. – Falmarri
Açıklayabilir misiniz? Çöp toplayıcı muhtemelen Android oyunlarında en yaygın performans sorunudur. Ayrıca, performans yavaşladığında kısa süreler (bir saniyeden daha az) haricinde iyidir. Günlük çıktısına bakıldığında, bu çöpler çöp toplama ile sıralanıyor. – Computerish