を開催それはあまりにも高いようです。我々は書くたびに書き込み、ファイルが、ファイルを開いたり閉じたりのコストを読み取ることが考えられ、我々はデバイス内のいくつかのイベントへの参照を保持している文字列ビルダーを持っているために探している</p> <p>を静的にStringBuilder
問題は、我々だけで定義されたサイズ
public class DiagnosticUtil {
private static final int DIAGNOSTIC_SIZE = 5000;
public static StringBuilder DIAGNOSTICS_HOLDER = new StringBuilder(DIAGNOSTIC_SIZE);
public static void addDiagnosticLine(String message){
try {
//Limits the size of the diagnostics recolection removing the first 2000 characters
if (DiagnosticUtil.DIAGNOSTICS_HOLDER.length() > DIAGNOSTIC_SIZE - 300) {
DiagnosticUtil.DIAGNOSTICS_HOLDER.delete(0, DiagnosticUtil.DIAGNOSTICS_HOLDER.length() - 2000);
}
DIAGNOSTICS_HOLDER.append(TimeUtils.getCurrentDate()).append(message).append("\n");
}catch (Exception e){
Timber.d("Error saving additional data");
}
}
}
質問があるのためのStringBuilderを維持しようとした場合でも、時には我々はStackOverflowの例外を取得している、これは良いアプローチであるということですか?または、このログを外部ファイルに保存する必要がありますか。
ありがとうございます!
は 'StringBuilder'は、何でもへの参照を保持するだけで、イベントを聞かせていない悪い、手続き型コードでOOPない
注意を払う:あなたはこのようなコードの何かが必要。あなたは何らかのコレクションを探していますか? – EJP