有關於如何更好地優化或加快速度的問題。目前,我的代碼似乎運行有點慢......C#.net修飾器模式轉換/設置集合
我有以下類
public class DataFoo : IFoo { }
public class Foo
{
internal IFoo UnderlyingDataObject{get;set;}
public Foo(IFoo f)
{
UnderlyingDataObject = f;
}
}
現在,在很多情況下,我最終需要或調用的方法,將提供回列表。這種方法首先將得到DataFoo對象的數組,將遍歷所有返回的對象實例傳入DataFoo一個新的Foo對象......下面是一個例子...
public List<Foo> GetListOfFoo(Guid id)
{
DataFoo[] q = GetArrayOfDataFoo(id);
List<Foo> rv = new List<Foo>();
for(var i = 0; i < q.Length; i++)
{
rv.Add(new Foo(q[i]));
}
return rv;
}
的問題是,必須遍歷並像這樣實例化看起來很慢。我很好奇,如果有人可能會有如何加快這一點的建議...
你有配置文件的代碼,以驗證a)它運行速度慢b)這段代碼是瓶頸? – ChrisF
我正在將代碼從現有的linq轉換爲sql實現,使用nhibernate/fluent nhibernate這種方法... 從我看到的比較兩個版本;新代碼較慢。由於引入了nhibernate或者因爲發生的所有for循環,所以它的運行速度較慢... – Jason
使用Profiler來檢查性能瓶頸 - 而不是猜測;它們很少出現在你期望的地方。我希望ORM提供者的變化比循環性能更重要。 –