Frage

Was ist die wichtigste Performance-Overhead (gc / Stapel Kopier ...) des neuen Mono-Fortsetzungs / Tasklet Rahmen?

Wie funktioniert diese Overhead (Koroutine Leistung / raw Performance) im Vergleich zu anderen Frameworks wie Lua Coroutine und stackless Python?

In Mono 2.6 Fortsetzung / Koroutinen Unterstützung hinzugefügt werden. Ich baute eine SVN-Version und verwenden den folgenden Code seinen Kopf zu schätzen

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();
    }
}

Der Microthread / Scheduler Lauf dauerte etwa 1,5-2 Sekunden, während die rohe Schleife fast instantenously ist. Während ein Overhead zu erwarten ist, so viel scheint ein bisschen.

Was sind die wichtigsten Performance-Gemeinkosten des neuen Mono-Fortsetzungs / Tasklet Rahmen? Wie wirkt sich das Overhead (Koroutine Leistung / raw Leistung) zu anderen Frameworks wie Lua Coroutine und stackless Python vergleichen?

Danke

War es hilfreich?

Lösung

Wenn ich nicht falsch zählte, Ihr Code tut mehr als 2 Millionen Ausbeuten pro Sekunde, was in der gleichen Liga wie stackless Python roughtly sein sollte.

In Anbetracht, dass mono wird in der Regel die reale Anwendungscode ausführen 10 bis 100-mal schneller als Python wird die Leistung wahrscheinlich sehr gut zu gehen, es sei denn, alle Ihre Code tut, ist Ausbeute, ohne jemals eine wirkliche Arbeit zu tun, was ich nicht glaube, ist sehr nützlich:)

Andere Tipps

Da gibt es nur sehr wenige Menschen mit dem Know-how, dies zu beantworten, können Sie sie gehen, und fragen Sie an der mono-devel Liste.

Sie können auch in den Archiven suchen die Diskussion um Monoco / Tasklet zu sehen, wenn es eingeführt wurde:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top