6 性能 |
![]() ![]() |
本章的所有性能参数是在SPARCstation 1+(Sun 4/65)上获得的,此工作站是一个25Mhz SPARC工作平台。通过使用内嵌的微秒级实时定时器来做测量。参数反映了非调节的原型系统。
第一个测量是线索创建时间。它测量创建一个线索的开销时间,此线索使用由线索包缓冲的缺省堆栈。所测量的时间仅包括实际的创建时间,它不包括初始上下文切换线索的时间。图5显示结果。ratio列给出了那一行的创建时间与前一行创建时间的比例。
进行了创建绑定和非绑定线索的测量。绑定线索的创建涉及了调用核心,以创建运行它的LWP。不用核心的介入,就可以做非绑定线索的创建。
第二个测量是线索同步时间。它测量两个线索通过两个同步变量彼此同步的开销时间,如下面所示:
sema_t s1, s2;
thread1()
{
...
start_timer();
sema_v(&s1);
sema_p(&s2);
t = end_timer();
...
}
thread2()
{
...
sema_p(&s2);
sema_v(&s1);
...
}
图6所提出的参数是上面的测量除以2的结果,因为实际上涉及了两个同步。ratio列给出了那一行的同步时间与前一行同步时间的比例。�
第一个测量是一个简单的例程,它做setjmp()和longjmp()到它自己。它的提出,作为线索切换时间的基准。下两个测量是非绑定和绑定线索在进程内同步。最后的测量是两个不同进程的线索通过共享内存的文件来同步。
Copyright: NPACT | ![]() ![]() |