新的Mono Continuations/Tasklet框架的主要性能開銷(gc/stack copying ...)是什麼?Mono Tasklet/Co-Routines的開銷
這種開銷(協同性能/原始性能)與其他框架如Lua Coroutine和無堆棧python相比如何?
在單聲道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。雖然預計會有開銷,但這似乎有點多。
新的Mono Continuations/Tasklet框架的主要性能開銷是多少?這種開銷(協同性能/原始性能)與其他框架(如Lua Coroutine和無堆棧python)相比如何?
感謝
也許是一個很好的建議。 – jameszhao00 2009-08-17 23:30:11
謝謝你的鏈接。我看了一下,不幸的是單聲道延續是堆棧複製類,而不是堆棧指針類。 – jameszhao00 2009-08-17 23:36:42