当前位置:  开发笔记 > 编程语言 > 正文

Mono Tasklet/Co-Routines的开销

如何解决《MonoTasklet/Co-Routines的开销》经验,为你挑选了1个好方法。

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

这个开销(协程性能/原始性能)与其他框架(如Lua Coroutine和无堆栈python)相比如何?

在Mono 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秒,而原始循环几乎是不稳定的.虽然预计会有开销,但这似乎有点多.

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

谢谢



1> lupus..:

如果我没算错,那么你的代码每秒产生的收益超过200万,这应该和Stackless python一样.

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

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有