> %Time ExclSec CumulS #Calls sec/call Csec/c  Name
>  0.00   1.300  3.318 100001   0.0000 0.0000  TAPx::Parser::Streamed::_lex
>  TAPx::Parser::Grammar::_make_test_token 0.00   0.889  2.277 900025  
> 0.0000 0.0000  TAPx::Parser::__ANON__ 0.00   0.700  0.700 100001   0.0000
> 0.0000 0.0000  TAPx::Parser::Grammar::__ANON__ 0.00   0.340  0.340 100001  
> 0.0000 0.0000  TAPx::Parser::Grammar::_trim 0.00   0.180  0.180 200000  
> 100004   0.0000 0.0000  TAPx::Parser::Grammar::syntax_for 0.00   0.100 
> 0.020 100001   0.0000 0.0000  TAPx::Parser::Grammar::handler_for 0.00  

Looks like a lot of time is spent is spent inside the lexer / grammar engine 
(and yes, my mail client messed those lines up big time.  sorry), so I'm 
going to play around with a flex/bison version and see if I can get a quicker 
libtap going.  I imagine that something like:

NOT_OK NUMBER REASON END |
NOT_OK NUMBER END    { not_ok++; }
OK NUMBER REASON END |
OK NUMBER END { ok++; }

in C should be a bit quicker than creating a perl object for each TAP line.  
(Probably the Real Version would call back into the $LANGUAGE interperter, so 
you can do whatever you want.  If you just want counts, though, this should 
be fast.)

Anyway, if anything interesting comes of this I'll let the list know.

Regards,
Jonathan Rockway

-- 
package JAPH;use Catalyst qw/-Debug/;($;=JAPH)->config(name => do {
$,.=reverse qw[Jonathan tsu rehton lre rekca Rockway][$_].[split //,
";$;"]->[$_].q; ;for 1..4;$,=~s;^.;;;$,});$;->setup;

Attachment: pgpW0G7wPWFMF.pgp
Description: PGP signature

Reply via email to