XNA Vector3のヘルプでは、リストに含まれる2つのパブリックメソッドのうち、Subtractとop_Subtractionがあります。それらの違いは何ですか?いつ他のものの代わりに1つを使用する必要がありますか?XNA VectorsのSubtractとop_Subtractionの違いは何ですか?
0
A
答えて
2
op_Subtraction
(-
オペレータの実装)とVector3.Subtract
は、本質的に同じものです。それらは、減算操作からの値を持つ新しいベクトルを作成します。 Vector3
は値型なので、メモリ管理コストはありませんが、構築コストは小さいです。
減算の他の過負荷がわずかに異なっている:
void Vector3.Subtract(ref Vector3 value1, ref Vector3 value2, out Vector3 result)
この1つは、その入力のために、その出力のための参照を取ります。データ指向プログラミング(例えば、あるアレイからデータを取り出して別のアレイに出力する物理エンジンなどのタイトなループ)の方が優れています。これは、構築コストと引数として6つの浮動小数点数を渡すコストを取り除きますが、関数呼び出しと参照解除にはまだまだコストがかかります。
あなたは直接減算を行うことによって、より速く得ることができます:もちろん
result.X = value1.X - value2.X;
result.Y = value1.Y - value2.Y;
result.Z = value1.Z - value2.Z;
、あなたがより速くオプションを選択すると、あなたはまた、読みやすさを失います!これは非常に明確である:
result = value1 - value2;
だからあなたの質問に答えるために - ベクトル減算、を行うときあなたは非常に高性能なデータ指向のもののいくつかの種類を書いているない限り、あなたはabsolutlyベクトル-
演算子を使用する必要がありますとコードをプロファイリングして、パフォーマンスが向上することがわかりました。
このような低レベルのパフォーマンス情報に興味がある場合は、Shawn HargreavesのUnderstanding XNA Framework Performanceをご覧ください。 (実際には、ここで挙げた3つの方法を粒子システムで使用した場合と比較してベンチマークが含まれています)。
1
op_Subtraction()
は-
オペレータのための実装ですが、それ以外の場合は同じです:
vectorA - vectorB
Vector3.Subtract(vectorA, vectorB)
関連する問題
- 1. WPFとXNAの違いは何ですか?
- 2. XNA 4のパイプラインアセンブリとは何ですか?
- 3. PowerShellのop_Subtractionメソッド
- 4. $と$$の違いは何ですか?
- 5. `##`と `hashCode`の違いは何ですか?
- 6. typedefとの違いは何ですか?
- 7. NodeJS:「./ ..」と「..」の違いは何ですか?
- 8. {}())と{})の違いは何ですか?
- 9. `&`と `ref`の違いは何ですか?
- 10. `==`と `is`の違いは何ですか?
- 11. difftimeと ' - 'の違いは何ですか?
- 12. #{} $ {}と%{}の違いは何ですか?
- 13. ⊕と+の違いは何ですか?
- 14. アペンダーと〜の違いは何ですか?
- 15. "./"と "../"の違いは何ですか?
- 16. "$^N"と "$ +"の違いは何ですか?
- 17. %Qと%{}の違いは何ですか?
- 18. バックスティックと$()の違いは何ですか?
- 19. A`と ``の違いは何ですか[:] `
- 20. inner_productとcomplex vectors
- 21. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 22. XPathの//と?/の違いは何ですか?の使用は何
- 23. XNA 4のコンテンツプロセッサパラメータ - 欠けているものは何ですか?
- 24. フレームとオブジェクトの違いは何ですか?フレームとオブジェクトの違いは何ですか?
- 25. CSSプロパティのadd/subtractの使い方は?
- 26. リストと何か([_])と何か(_)の違い
- 27. 高速Python Cosineの相違点はScipy CSR "vectors"
- 28. METADATAとMETADATA.jl:違いは何ですか?
- 29. twistdとnohup&:違いは何ですか?
- 30. libspeとlibspe2?違いは何ですか?
私はパフォーマンスに非常に関心がありますので、減算をより速く行う方法、 。 – Curyous