私はreign SDKをC#からDに移植、拡張、およびD処理しています。現在、Vector2数学モジュールを扱っています。Dパフォーマンス:union vs @property
以下の2つの構造体の間にパフォーマンスの違いはありますか?私のベンチマークは、同一の性能を示すが、私は専門家の洞察力のビットを獲得したいと思います:)
struct Vector2(T)
{
T x, y;
@property T u() { return x; }
@property T v() { return y; }
@property void u(T value) { x = value; }
@property void v(T value) { y = value; }
}
struct Vector2(T)
{
union { T x, u; }
union { T y, v; }
}
もちろん、私は、構文簡単にするために労働組合を利用したいと思います。しかし、それらを使用すると予想外の落とし穴がありますか?私は彼らの低レベルの詳細に精通していません。
私は、HLSL/GLSLに似たベクトルプロパティシンタックスを追加しています(vec1.yxz + = vec2.xyzなど)。 @propertyではなく、unionでそれを行う方法はありますか?
'vec1.yxz + = vec2.xyz'にはopDispatchが必要ですが、誰かがこれをすでに行っていると思います。 – kennytm
@KennyTM - あなたは正しい - https://bitbucket.org/dav1d/gljmとhttps://bitbucket.org/dav1d/gl3n – DejanLekic