--- cvsroot/Coro/eg/bench 2001/07/23 02:14:19 1.8 +++ cvsroot/Coro/eg/bench 2011/05/30 02:21:54 1.21 @@ -8,7 +8,7 @@ use Coro; use Benchmark; -sub a() { } +sub a($) { } $a = bless {}, main::; @@ -22,6 +22,7 @@ # do a little unrolling... while() { cede; cede; cede; cede; cede; + cede; cede; cede; cede; cede; } }; @@ -37,6 +38,7 @@ transfer($c0, $main); transfer($c0, $main); transfer($c0, $main); transfer($c0, $main); transfer($c0, $main); transfer($c0, $main); + transfer($c0, $main); transfer($c0, $main); } } @@ -46,25 +48,35 @@ transfer($c1, $main); transfer($c1, $main); transfer($c1, $main); transfer($c1, $main); transfer($c1, $main); transfer($c1, $main); + transfer($c1, $main); transfer($c1, $main); } } -$c0 = Coro::State::_newprocess [sub { +$c0 = new Coro::State sub { doit0(1,2,3,4,5,6,7,8,9); -}]; +}; -$c1 = Coro::State::_newprocess [sub { +$c1 = new Coro::State sub { doit1(1,2,3,4,5,6,7,8,9); -}]; +}; + +#$c0->save (0); +#$c1->save (-1); transfer($main, $c0); transfer($main, $c1); -timethese 100000, { - empty => '&a; &a', - method => '$a->b(5); $a->b(6)', - cede => 'cede', - transfer0=> 'transfer($main, $c0, 0)', - transfer1=> 'transfer($main, $c1)', +#Coro::State::enable_times 1; +#use Coro::Debug; Coro::Debug::command "ps";#d# +#(async { +timethese 5000000, { + function => 'a(5); a(6)', + method => '$a->b(5); $a->b(6)', + cede => 'cede', + transfer0 => 'transfer($main, $c0)', + transfer1 => 'transfer($main, $c1)', }; +#})->join; +#use Coro::Debug; Coro::Debug::command "ps";#d# +