String.format() メソッドが遅い件について
Java 1.5 から、C の sprintf みたいな構文が使えるわけですよ。
今まで速度が必要な箇所で使ったことがなかったけど、たまたま fps を測りたくて、こんな感じのコードを書いてみたら・・・
long now = System.currentTimeMillis(); String text = String.format("%3.1ffps", 1000f / (time - now)); canvas.drawText(text, 0, getHeight(), null); time = now;
なんと、String.format にものすごく時間がかかることがわかった。
long now = System.currentTimeMillis(); canvas.drawText("" + 1000f / (time - now) + "fps" 0, getHeight(), null); time = now;
String.format() を使う上のパターンだと、5〜6fps、使わない下のパターンだと 20〜30fps となる。
いやいや、これほどまでとは。びっくりびっくり。