기본적으로 xna와 slimdx (Promit :)를 체크 아웃했습니다.이 구조체에는 많은 구조체가 있습니다. 이처럼 보였다 거의 모든 방법 :새 인스턴스를 생성하는 대신 값을 변경합니다.
public static Vector3 operator + (Vector3 a, Vector3 b)
경우처럼 물건을 :
Vector3 c = new Vector3 (...)
는 의미가 만약 내가 궁금 단지 수행
a.X += b.X
...
return a
분명히 # 1 모습을 더 현명하고 합리적인,하지만 # 2는 더 빠른 새로운 Vector3을 만들지 않습니다.
# 1로 더 명확하지 않으면 빠르고 명확합니다.
어느 것이 더 낫습니까? # 2에 문제가 있습니까?
그는 게임 및 그래픽 응용 프로그램을 작업하는 경우 성능이 일반 비즈니스 응용 프로그램보다 훨씬 중요합니다. –
@Reed -하지만 여전히 프로필을 작성하고 실제 병목 현상을 찾아야합니다. 그것이 다른 곳에 있다면,이 비트를 최적화하는 것이 도움이되지 않을 것입니다. –
크 누스 (Knuth)는 "비즈니스 앱의 시기상의 최적화는 모든 악의 뿌리입니다."라고 말하지 않았습니다. 거기에 자격이 없다는 것을 알게 될 것입니다. 프로필을 작성하면 속도가 느려지는 부분을 찾을 수 있습니다. 그 전에는 추측을하고 코드 품질을 대폭 낮추었습니다. –