0

画面にタイルを描画するメソッドがあります。このメソッド内に、特定のタイルを描画するdrawFloorという同じクラスのメソッドの呼び出しがあります。

外部メソッドでは、drawFloor呼び出しのすぐ上でストップウォッチを開始し、呼び出しのすぐ下で停止しました。取得した時間は2.4ミリ秒でした。

次に、ストップウォッチを実際のdrawFloorメソッド自体の中に入れて、ストップウォッチにメソッド内のすべてのコードを具体化させました。取得した時間は1.9ミリ秒でした。

この時間の変更を行うことができると思う唯一のことは、パラメーターの受け渡しであり、なぜそれがそれほど高価なのか理解できません。2つのパラメータのみを渡します。1つは「カメラ」と呼ばれるカスタムクラスに、もう1つはスプライトバッチに渡します。

4

1 に答える 1

8

いいえ、それほど高価ではありません。それはほぼ間違いなくあなたの測定値の単なる不一致です。優れたマイクロベンチマークは困難です。あなたが物事を変える何か他のことをしたか、あるいはあなたのマシンが他のことをするのに忙しくないということは完全に可能です。

メソッド呼び出しとパラメーターの受け渡しは高価ではありません-確かに0.5ミリ秒の調整ではありません。

于 2012-08-22T18:47:21.083 に答える