سؤال

ما هي النفقات العامة للأداء الرئيسي (نسخ GC / STACK ...) من إطار المستمرات / المهام الجديدة للأونو؟

كيف يقارن هذا النفقات العامة (الأداء / الأداء الأول) بأطر أخرى مثل Lua Coroutine و Python الزائد؟

في مونو 2.6 سيتم إضافة دعم / دعم Coroutines. لقد قمت ببناء نسخة SVN واستخدمت التعليمة البرمجية التالية لتقدير النفقات العامة

static void Main()
{
    Console.WriteLine("starting.,..");
    for(int i = 0; i < 10000; i++)
    {
        MicroThread t1 = new MicroThread(Run1);
        t1.Start();
    }
    Scheduler.Run();
    Console.WriteLine("starting raw loop.,..");
    int x = 2;
    for (int i = 0; i < 10000 * 400; i++ )
    {
        x++;
    }
    Console.WriteLine("1finished.,.. " + x.ToString());
    Console.ReadLine();
}

static void Run1()
{
    for (int y = 0; y < 400; y++)
    {
        MicroThread.CurrentThread.Yield();
    }
}

استغرق تشغيل MicroThread / Greaduler حوالي 1.5-2 ثواني، في حين أن الحلقة الخام هي لبداية مثيرة تقريبا. في حين أنه من المتوقع أن يكون النفقات العامة، يبدو هذا كثيرا.

ما هي النفقات العامة للأداء الرئيسي لإطار المستمرات / المهام المعلم الجديد؟ كيف يقارن هذا النفقات العامة (الأداء / الأداء الأول) بأطر أخرى مثل Lua Coroutine و Python الزائد؟

شكرا

هل كانت مفيدة؟

المحلول

إذا لم أحسب خطأ، فإن الكود الخاص بك يفعل أكثر من مليوني عائد في الثانية، والتي يجب أن تقرئ في نفس ballpark مثل ثعبان بلاثون.

بالنظر إلى أنه سيتم تنفيذ مونو عادة رمز التطبيق الحقيقي 10 إلى 100 مرة أسرع من ثعبان، من المحتمل أن يكون الأداء جيدا جيدا إلا إذا كان كل الكود الخاص بك هو أن يؤدي دون القيام بأي عمل حقيقي، وهو ما أعتقد أنه مفيد للغاية :)

نصائح أخرى

بالنظر إلى أن هناك عدد قليل جدا من الأشخاص الذين يعانون من الخبرة للإجابة على هذا، فقد تضطر إلى الذهاب إليهم، وتسأل عن قائمة أحادية الدورة.

يمكنك أيضا إلقاء نظرة على المحفوظات لرؤية المناقشة حول Monoco / Haskletlet عند تقديمها:

http://lists.ximian.com/pipermail/mono-devel-list/2009-april/031680.html.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top