$B>.:j$G$9(B
$BBg7?O"5Y$N$5$J$+!"$_$J$5$sG!2?$*2a$4$7$G$7$g$&$+!#$o$?$7$O855$$G$9!#$4$U$C(B
$B$($C$H!“0JA0$+$i;XE&$5$l$F$$$?;v$G$9$,!“8=:_$N(Btrunk$B$N(BGVL$B<[email protected]$H(B1.9.2$B$h$j$b(B
$B$”$k<o$N%Y%s%A$,CY$/$J$C$F$^$9!#$0$?$$$F$-$K$O!”(Bpipe$B$d(BThread.pass$B$G#2$D$N%9%l%C%I$,(B
$B%.%C%3%s%P%C%?%s$9$k%1!<%9$G$9$M!#(B
simple-mutex r31433
vm4_pipe 1.262 2.495
vm4_thread_pass 0.183 2.034
$B$J$N$G!"JL<BAu$r$D$/$C$F$_$^$7$?!#0J2<$N$h$&$K$J$j$^$9!#(B
simple-mutex r31433 newgvl
vm4_pipe 1.262 2.495 1.493
vm4_thread_pass 0.183 2.034 0.089
$B%Q%C%A$O0J2<$G$9(B
$BE:IU$7$?%U%!%$%k$N$&$A!"(Bbm.txt$B$,85%G!<%?!J(BCSV)$B$G!"@-G=%0%i%U(B.png$B$,%(%/%;%k$5$s$,(B
$B:n$C$F$/$l$?%0%i%U$G$9!#(B
$B0l3d0J>[email protected]=$,$+$o$C$?%Y%s%A$r%T%C%/%"%C%W$9$k$H0J2<(B
r31433 newgvl ratio
(1$B0J2<$J$i9bB.!K(B
so_sieve 1.642 1.43 0.87088916
vm1_ivar_set* 1.401 1.647 1.175588865
vm3_thread_mutex 17.083 1.168 0.068372066
vm4_pipe 2.495 1.493 0.598396794
vm4_thread_pass 2.034 0.089 0.043756146
$BA4BN$N%"%Y%l!<%8$G$O!"(B1.3%
$BDxEY$N2~A1$H$$$C$?$H$3$m$G$9!#%3%a%s%HBT$C$F$^$9(B
$B"((B [email protected]>[email protected]$&$H(B vm1_ivar_set
$B$,D>$;$J$/$F:$$C$F$$$k$N$GC/$+=u$1$F$/[email protected]$5$$$^$;(B
$B8D?ME*$K$O!"(Bvm3_thread_mutex$B$,$d$C$H(B1.8$B$J$_$KLa$C$F$/$l$?$N$GC#@.46$,(B
$B$"$C$?$j$J$+$C$?$j!#(B
1.8.7 r31433 newgvl
vm3_thread_mutex 1.106 17.083 1.168
$B$"$H!“46A[$H$7$F$O(B
benchmark$B%G%#%l%/%H%j$NBgH>$N%Y%s%A%^!<%/$O(Bthread$B$D$/$i$J$$$s$G$9$,!”(B
$B6%9g$,$J$$$H2>Dj$9$k$H(B1.9.2$B$N(Bsimple
mutex$B:G6/$G$9$M!#2?$b$7$J$$$N$,B.$$$K$-$^$C$H$k!#(B
$B:#$NJ}?K$G!"$3$l0J>e$d$k$J$i!"%"%;%s%V%i=q$$$F(Bfutex$B$rD>@\C!$/$H$+$=$&[email protected]$3&$,$^$C$F$k$N$G!"(B
$B<!$N0l<j$r$I$&$7$h$&$+$J$!!#$H$+$H$+(B