مشاركة عبر


كيفية القيام بما يلي: المقياس الأداء PLINQ على الاستعلام

هذا مثال يوضح كيفية استخدام Stopwatchفئة لقياس الوقت الذي يستغرقه لتنفيذ استعلام PLINQ.

مثال

يستخدم هذا المثال فارغ foreachتكرار حلقي ( For Eachفي Visual أساسى) إلى قياس الوقت الذي يستغرقه للاستعلام إلى الينفذ. في تعليمات برمجية الحقيقي، تكرار حلقي عادة يحتوي على خطوات المعالجة الإضافى التي تضيف إلى وقت تنفيذ الاستعلام الإجمالي. لاحظ أنه stopwatch هو لم تبدأ حتى قبل مباشرة حلقة، لأن التي هو عندما يبدأ تنفيذ الاستعلام. إذا احتجت إلى مزيد من قياس تفصيلية، يمكنك استخدم ElapsedTicksخاصية بدلاً من ElapsedMilliseconds.

Sub Main()
    Dim source = Enumerable.Range(0, 3000000)
    Dim queryToMeasure = From num In source
                         Where num Mod 3 = 0
                         Select Math.Sqrt(num)

    Console.WriteLine("Measuring...")


    ' The query does not run until it is enumerated.
    ' Therefore, start the timer here.
    Dim sw = System.Diagnostics.Stopwatch.StartNew()

    ' For pure query cost, enumerate and do nothing else.
    For Each n As Double In queryToMeasure
    Next

    Dim elapsed As Long
    elapsed = sw.ElapsedMilliseconds ' or sw.ElapsedTicks
    Console.WriteLine("Total query time: {0} ms.", elapsed)

    ' Keep the console window open in debug mode.
    Console.WriteLine("Press any key to exit.")
    Console.ReadKey()
End Sub
static void Main()
{
    var source = Enumerable.Range(0, 3000000);

    var queryToMeasure = from num in source
                         where num % 3 == 0
                         select Math.Sqrt(num);

    Console.WriteLine("Measuring...");

    // The query does not run until it is enumerated.
    // Therefore, start the timer here.
    System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();

    // For pure query cost, enumerate and do nothing else.
    foreach (var n in queryToMeasure) { }

    long elapsed = sw.ElapsedMilliseconds; // or sw.ElapsedTicks

    Console.WriteLine("Total query time: {0} ms", elapsed);

    // Keep the console window open in debug mode.
    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();

}

وقت تنفيذ إجمالي هو قياس مفيدة عندما الذي يتم تجربة العمل مع تطبيقات الاستعلام، ولكن ذلك ليس دائماً تقدمها القصة بأكملها. للحصول على عرض أعمق وأكثر ثراء من تفاعل من عمليات جزئية الاستعلام مع أحد غير ذلك مع غير ذلك معالجات تشغيل، استخدم مصور مرئي تزامن. Th هو الأداة هو متوفراً في Microsoft Visual Studio 2010 Premium. لمزيد من المعلومات، راجع طرق عرض البيانات في تنفيذ مؤشر الترابط.

راجع أيضًا:

المبادئ

متوازى LINQ (PLINQ)