C# 'dan D reign SDK porting, geliştirme ve D-atlatma sürecinde olduğum için Şu anda Vector2 matematik modülü üzerinde çalışıyor.D performans: sendika vs @property
Aşağıdaki iki yapı arasında herhangi bir performans farkı olacak mı? Benim kriterler aynı performansı gösterir, ancak ben uzman içgörü biraz :)
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; }
}
Açıkçası ben sözdizimsel basitlik için sendikalara kullanmak istediğiniz kazanmak istiyorum. Ama bunları kullanarak öngörülemeyen herhangi bir tuzak var mı? Düşük seviyeli detaylarına aşina değilim.
Bir yan notta, HLSL/GLSL'ye benzer vektör özelliği sözdizimini ekliyorum, ör. Vec1.yxz + = vec2.xyz; Orada ... hayır .. sendikalar yerine bunu yapmak için olası bir yol var mı?
Sen 'vec1.yxz + = vec2.xyz' için opDispatch gerekir ve ben birileri bu yapmış inanıyoruz. – kennytm
@KennyTM - doğru - https://bitbucket.org/dav1d/gljm ve https://bitbucket.org/dav1d/gl3n – DejanLekic