Отчеты Lint StringBuilder влияет на производительность
в моем проекте я просто сделал проверку LINT, до сих пор им доволен. Но им любопытно, почему LINT сообщает, что использование StringBuilder медленное?
Я переключился с Eclipse на Android Studio некоторое время назад, те методы toString(), которые генерируются eclipse, чтобы получить лучший результат отладки:
@Override
public String toString()
{
final StringBuilder builder = new StringBuilder();
builder.append("param1");
builder.append(param1);
builder.append(", param2");
builder.append(param2);
builder.append("param3");
....
return builder.toString();
}
В Studio сообщается о замене StringBuilder на String. С моей точки зрения, StringBuilder всегда был более быстрым и более дружественным к GC. Или DEX что-то умное там alreasy, я не знаю?
Я искал LINT Checks без какого-либо описания этого
Ответы
Ответ 1
Простой ответ заключается в том, что, хотя нет никакой разницы в производительности, но это проще сделать:
String string = "param1" + param1 + ", param 2" + param2 + "param3".... (and so on)
Я предпочел бы этот подход просто потому, что он короче. За кулисами компилятор преобразует его в код, который вы только что упомянули, и генерируемый байткод точно такой же.
Если вы строите строку в цикле, то StringBuilder, безусловно, подходит.