하나의 Silverlight 앱에서 동일한 수학 연산이 다른 수학 연산보다 훨씬 오래 걸리는 이유가 있습니까?silverlight 수학 성능 질문
예를 들어, 포인트 목록을 가져 와서 변환하고 (비율을 조정하고 변환 한) 다른 포인트 목록을 채우는 코드가 있습니다. 원래 점을 그대로 유지해야하므로 두 번째 목록이 중요합니다.
여기 (규모가 두 배이며 원산지는 점이다) 관련 코드입니다 : 내가 루프와 타이밍을하고 있어요 방법
다음public Point transformPoint(Point point) {
// scale, then translate the x
point.X = (point.X - origin.X) * scale;
// scale, then translate the y
point.Y = (point.Y - origin.Y) * scale;
// return the point
return point;
}
이의 IT가 중요한 경우 :
DateTime startTime = DateTime.Now;
foreach (Point point in rawPoints) transformedPoints.Add(transformPoint(point));
Debug.Print("ASPX milliseconds: {0}", (DateTime.Now - startTime).Milliseconds);
14356 포인트 (데스크톱 앱에서 실세계 번호로 모델링 한 질문하지 않음)의 경우 다음과 같이 분석됩니다.
Silverlight 앱 # 1 : 46 ms
Silverlight app # 2 : 859 ms
첫 번째 앱은 MainPage 생성자에서 루프를 수행하는 빈 앱입니다. 두 번째는 다른 클래스의 메서드에서 루프를 수행하고 있으며 GUI 스레드의 이벤트 핸들러에서이 메서드가 호출됩니다. 그러나 루프 자체 내에서 동일한 작업이 수행되고 있다는 것을 고려할 때 그 중 어떤 것이 중요할까요?
스레딩 작업이나 무언가에서 내가 누락 된 거대한 무언가가있을 수 있지만,이 불일치는 전혀 나에게 의미가 없습니다.
코드를 벤치 마크하고 결과를 게시하려면 System.Diagnostics.StopWatch를 사용하십시오. DataTime 사용은 매우 부정확합니다. – ParmesanCodice
또한 두 경우 모두 릴리스 빌드를 측정하고 있는지 확인하십시오. –