0

簡単なテストプログラムを作成して、DisposeとDataContainerオブジェクトを呼び出す間のメモリと速度の違いを調べます。DataContainerまたはDataContextでDisposeを呼び出す必要があるのはなぜですか?違いはありません。

ここに私のテストプログラム:

static void Main(string[] args) 
{ 
    Stopwatch stopwatch = new Stopwatch(); 
    stopwatch.Start(); 

    for (int i = 0; i < 5000; i++) 
    { 
     // I change the following call with Method1 and run it again 
     var res = Method2(); 
     int count = res.Count; 
    } 

    stopwatch.Stop(); 
    Console.WriteLine(stopwatch.Elapsed); 
    Console.WriteLine("Mem: " + System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64.ToString("N")); 
    Console.ReadKey(); 
} 

private static IList Method1() 
{ 
    using (var db = new Model.SampleEntities()) 
    { 
     var result = db.People.Where(p => p.Name.StartsWith("a")).Take(1); 
     return result.ToList(); 
    } 
} 

private static IList Method2() 
{ 
    var db = new Model.SampleEntities(); 
    var result = db.People.Where(p => p.Name.StartsWith("a")).Take(1); 
    return result.ToList(); 
} 

結果は、両方の方法で同じです。 私のPCの結果は約27.22秒で、約37.7 MBのプライベートメモリサイズでした。

DataContainerのDisposeを呼び出す必要がありますが、違いはありません。

ありがとうございます。

答えて

0

IdはModel.SampleEntitiesは、正当な理由のためにIDisposableをを返し想像 - perhasが適切に管理クリーンアップおよび/またはアンマネージリソースなど

+0

私は知っているが、これらのリソースは何ですか?なぜそれらを廃棄してもパフォーマンスに影響しないのでしょうか? –

関連する問題