나는 reign SDK을 C#에서 D로 이식, 향상, D-atizing하는 중입니다. 현재 Vector2 수학 모듈을 다루고 있습니다.D 퍼포먼스 : 유니온 vs @property
아래 두 구조체간에 성능 차이가 있습니까? 내 벤치 마크는 동일한 성능을 보여 주지만, 나는 전문가의 통찰력의 비트 :
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 대신 unions로 할 수있는 가능한 방법이 있습니까?
'vec1.yxz + = vec2.xyz'에 opDispatch가 필요하며 누군가 이미이 작업을 수행했다고 생각됩니다. – kennytm
@KennyTM - 정확합니다 - https://bitbucket.org/dav1d/gljm 및 https://bitbucket.org/dav1d/gl3n – DejanLekic