4

私は何度も、反射が電話のパフォーマンスを遅くすることを読みました。これはどれほど真実ですか?

たとえば、私の場合、Androidアプリにあるクラスのパラメーターと同じ名前のパラメーターをWebサービスから取得します。したがって、Javaフィールドとリフレクションを使用してこれらのパラメータの値を設定するだけです...パフォーマンスが低下することはないようです。

反射がパフォーマンスを低下させるというこの考えの背後にある事実を誰かが私に説明できますか?

4

2 に答える 2

7

この質問を見てください。基本的に、リフレクションが動的に発生するため、コンパイラが実行できる最適化の範囲外になります。

多くのリフレクション呼び出しを行っていない場合 (たとえば、ListView の getView 内で行うのは良くない場合) は、おそらく問題なく実行できます。使用するためにありますが、慎重に検討してください。

于 2011-03-30T20:55:37.593 に答える
4

これはどのくらい本当ですか?

反射を使用しない場合よりも遅くなります。これは間違いなく、ループ内または高速UI処理(たとえば、ListViewのスクロール)中に回避したいものです。

Androidアプリにあるクラスのパラメーターと同じ名前のパラメーターをWebサービスから取得します。したがって、Javaフィールドとリフレクションを使用してこれらのパラメータの値を設定するだけです...パフォーマンスが低下することはないようです。

この場合、ユーザーには気付かないかもしれませんが、そうです。

反射がパフォーマンスを低下させるというこの考えの背後にある事実を誰かが私に説明できますか?

@BrianCooleyが彼の回答で提供したリンクを参照してください。Dalvik(Androidの仮想マシン)でのリフレクションは、Java VMでのリフレクションよりも遅い可能性があることに注意してください。いずれにせよ、高速ではないと確信しています。

于 2011-03-30T20:57:24.093 に答える