gpt4 book ai didi

c# - Mono Tasklet/协程的开销

转载 作者:太空狗 更新时间:2023-10-30 00:36:38 25 4
gpt4 key购买 nike

新的 Mono Continuations/Tasklet 框架的主要性能开销(gc/堆栈复制...)是什么?

与 Lua Coroutine 和 stackless python 等其他框架相比,这种开销(协程性能/原始性能)如何?

在 Mono 2.6 中,continuation/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();
}
}

微线程/调度程序运行大约需要 1.5-2 秒,而原始循环几乎是瞬间完成的。虽然预计会有开销,但这似乎有点多。

新的 Mono Continuations/Tasklet 框架的主要性能开销是什么?与 Lua Coroutine 和 stackless python 等其他框架相比,这种开销(协程性能/原始性能)如何?

谢谢

最佳答案

如果我没记错的话,你的代码每秒产生超过 200 万次,这应该与 stackless python 大致处于同一水平。

考虑到 mono 通常执行实际应用程序代码的速度比 python 快 10 到 100 倍,性能可能会非常好,除非你所有的代码都只是 yield 而没有做任何实际工作,我认为这不会非常有用:)

关于c# - Mono Tasklet/协程的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com