什么是新的单声道延续/微进程框架的主要性能方面的开销(GC /堆栈复制...)?

如何做到这一点的开销(协程的性能/原始性能)比其他框架如Lua的协程和无堆栈蟒吗

在单声道2.6延续/协程支持将被添加。我建立一个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();
    }
}

在微线/调度运行花了大约1.5-2秒,而原始循环几乎instantenously。尽管架空预计,这似乎有点多。

什么是新的单声道延续/微进程框架的主要性能开销?这是如何开销(协程的性能/原始性能)比其他框架如Lua的协程和无堆栈蟒?

由于

有帮助吗?

解决方案

如果我没算错,你的代码确实每秒超过200万吨的产量,这应该是roughtly在同一个球场作为无堆叠蟒蛇。

考虑到单通常会执行实际的应用程序代码比Python快10到100倍,性能可能会是很不错的,除非所有的代码确实是产量没有做过任何真正的工作,我不认为是非常有用的:)

其他提示

由于有极少数人的专业知识来回答这个问题,你可能不得不去给他们,并要求单devel的名单上。

您也可以看看档案馆看到周围monoco /微进程的讨论时,刚开始:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top