2017-08-21 6 views
0
String timeStamp = currentCommentObjectObj.getTimeStamp(); 

holder.timeStamp.setText(timeStamp); 

または時間と空間の最適化の観点から優れているString変数にメモリと時間の点でコストがかかりますか?

holder.timeStamp.setText(currentCommentObjectObj.getTimeStamp()); 

詳細情報: このコードはリサイクルビューのBindViewHolderの内側にあります。

+4

なぜ気にしますか?これはあなたのコードのボトルネックですか?おそらくは –

+0

'timeStamp'を再利用する予定がない場合は、2番目の例に進みます。 –

+0

もう1つは私にとって少し賢明です。なぜなら、他に何が 'timeStamp'を使うのか心配する必要がないからです。しかし、記憶と時間に関しては、あなたは間違いなくこれらの2つの違いに気付かないでしょう。 – yshavit

答えて

2

私は2番目の方が好きですが、違いはないと私は信じています。コンパイルのステップのどこかでコンパイラがコードを最適化し、そのような不一致があればそれを認識します。

詳細については、http://www.noesispoint.com/jsp/scjp/SCJPch0.htmを参照してください。

明らかに最初のjavac(Javaコンパイラ)はコードをJavaByteCodeにコンパイルし、Java仮想マシンのコンパイラJITはバイトコードを機械語に最適化してコンパイルします。

希望に役立ちます。

1

コンパイラ/ JVMの動作に関係なく、これは本質的に瞬間的な操作でなければなりません。

マシン・レベルでは、2つの方法の間の唯一の可能な違いは

(a)は、次にポインタをロード、メモリへのポインタを保存している、または

(B)に直接ポインタを渡します次のメソッド呼び出し。

これらの2つの間で異なる時間の長さは、オブジェクトにとって本質的に重要でないほど小さいです。ループの中でさえ、AndroidのUIコードは、これがおそらく問題ではないほど十分に実行されるべきではありません。

関連する問題