-
コードが複雑にならないよう微調整する方法があります。
-
comparison view を見てみましょう。
-
各行で文字列を結合するよりも
-
StringBuilderで各行を一つの文字列として扱いましょう。
-
StringBuilderインスタンスはループ外で生成するので
-
メモリは一度しか確保されません。
-
初期化したループのイテレーションを
-
バッファするのにStringBuilderを使います。
-
整数の文字列をイテレーションが示す行に追加します。
-
このコードの詳細は下記ノートを参照してください。
-
それでは検証してみましょう。
-
memory_churn_optimizedという名前の改善したコードを読み込んで
-
trace viewとmemory monitorで確認チェックし、
-
GCの頻発が軽減されていることを確認しましょう。
-
allocation trackerを使って検証しても良いです。
-
allocation trackerを使ったり、
-
trace viewやmemory monitorで予期しないことが起きたら
-
画面ショットをフォーラムで共有してください。
-
何が起きたか関心があります。
-
修正の結果、Perf pirateはまだカクつきますが
-
その時間はだいぶ短くなりました。
-
このファンクションはおそらくバックグラウンドで
-
動作させるのが良いのかもしれません。