문제

새로운 Mono Continuations/Tasklet Framework의 주요 성능 오버 헤드 (GC/스택 복사 ...)는 무엇입니까?

이 오버 헤드 (코 루틴 성능 / 원시 성능)는 Lua Coroutine 및 Stackless Python과 같은 다른 프레임 워크와 어떻게 비교됩니까?

Mono 2.6에서 계속/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 Framework의 주요 성능 오버 헤드는 무엇입니까? 이 오버 헤드 (코 루틴 성능 / 원시 성능)는 Lua Coroutine 및 Stackless Python과 같은 다른 프레임 워크와 어떻게 비교됩니까?

감사

도움이 되었습니까?

해결책

내가 틀리지 않았다면, 당신의 코드는 초당 2 백만 개 이상의 수확량을 수행하며, 이는 스택리스 파이썬과 같은 야구장에서 끔찍해야합니다.

Mono가 일반적으로 실제 응용 프로그램 코드를 Python보다 10 ~ 100 배 빠르게 실행한다는 점을 고려하면 실제 작업을 수행하지 않고 모든 코드가 수행하지 않는 한 성능이 매우 좋을 것입니다. :)

다른 팁

이에 답변 할 전문 지식을 가진 사람이 거의 없다는 점을 감안할 때, 당신은 그들에게 가서 모노 데벨 목록을 물어봐야 할 수도 있습니다.

아카이브를 살펴보면 모노코/작업 렛이 소개되었을 때 토론을 볼 수 있습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top