in reply to Re: The cost of unchecked best practices
in thread The cost of unchecked best practices

Thank you, good to know that the regex engine has been improved so much for 5.10.

It's intresting that both yours and ikegami's benchmark show the 'class' example to be slightly faster than the 'literal' one.

Any ideas why? Could somebody repeat the benchmark with more iterations please, to check if it's really faster (and not just randomness)? I have no 5.10 available here, sorry.

  • Comment on Re^2: The cost of unchecked best practices

Replies are listed 'Best First'.
Re^3: The cost of unchecked best practices
by Corion (Patriarch) on Mar 19, 2008 at 12:15 UTC

    For perl5.10

    perl -Mre=debug -e "qr/a .{1,10} \ /x;qr/a .{1,10} [ ]/x;"

    gives

    Compiling REx "a .{1,10} \ " Final program: 1: EXACT <a> (3) 3: CURLY {1,10} (6) 5: REG_ANY (0) 6: EXACT < > (8) 8: END (0) anchored "a" at 0 floating " " at 2..11 (checking floating) minlen 3 Compiling REx "a .{1,10} [ ]" Final program: 1: EXACT <a> (3) 3: CURLY {1,10} (6) 5: REG_ANY (0) 6: EXACT < > (8) 8: END (0)

    So the two compile to the identical program under 5.10. And indeed, when I take out class_nodot, I get:

    Rate literal class literal 531978/s -- -1% class 539600/s 1% --
Re^3: The cost of unchecked best practices
by ikegami (Patriarch) on Mar 19, 2008 at 12:40 UTC
    1% difference is meaningless. Many factors influence a few % in benchmarks. Seeing fluctuations of 5% is not unusual when running the same benchmark repeatedly.