是否有某些原因導致相同的數學運算在一個Silverlight應用程序中比另一個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;
}
以下是我正在做的循環和時間,在情況下,它是很重要的:
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毫秒
Silverlight應用程序#2:859毫秒
第一個應用程序是一個空的應用程序,它在MainPage構造函數中執行循環。第二個是在另一個類的方法中執行循環,我想在GUI線程的事件處理程序中調用該方法。但是,如果考慮到循環內部發生了相同的操作,是否應該考慮這一點?
在線程工作或其他方面我可能缺少一些巨大的東西,但這種差異對我來說根本沒有意義。
請使用System.Diagnostics.StopWatch來測試您的代碼併發布結果。使用DataTime是非常不準確的。 – ParmesanCodice 2009-10-09 21:52:31
另外 - 也許這是顯而易見的 - 確保你在這兩種情況下測量版本構建。 – 2009-10-09 21:54:39