Question

Quels sont les principaux frais généraux de performance (copie gc / stack ...) du nouveau cadre Mono continuations / tasklet?

Comment cette surcharge (performance coroutine / performances brutes) comparer à d'autres cadres tels que Lua Coroutine et python stackless?

Mono 2.6 / continuation soutien coroutines seront ajoutés. Je construit une version svn et utilisé le code suivant pour estimer ses frais généraux

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

La course MicroThread / programmateur a pris environ 1,5-2 secondes, tandis que la boucle est presque crue instantenously. Alors qu'une tête est prévu, cela semble un peu beaucoup.

Quels sont les principaux frais généraux de performance du nouveau cadre Mono continuations / tasklet? Comment cette surcharge (performance coroutine / performances brutes) par rapport aux autres cadres tels que Lua Coroutine et python stackless?

Merci

Était-ce utile?

La solution

Si je ne compte pas, votre code fait plus de 2 millions de rendements par seconde, ce qui devrait être roughtly dans le même ordre de grandeur que python stackless.

Étant donné que mono exécutera habituellement le vrai code d'application 10 à 100 fois plus rapide que python, la performance va probablement être très bon à moins que tout votre code est de rendement sans jamais faire de véritables travaux, que je ne pense pas est très utile:)

Autres conseils

Étant donné qu'il ya très peu de personnes avec l'expertise nécessaire pour répondre à cela, vous devrez peut-être aller à eux, et demander la liste devel-mono.

Vous pouvez également consulter les archives pour voir la discussion autour Monoco / tasklet quand il a été introduit:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top