|No such thing as a small change|
Why is this code so much slower than the same algorithm in C?by wanna_code_perl (Pilgrim)
|on Dec 09, 2008 at 02:42 UTC||Need Help??|
wanna_code_perl has asked for the
wisdom of the Perl Monks concerning the following question:
I am trying to figure out why this code performs so poorly against its C counterpart:
Perl (complete program)
C (complete program)
On my machine, the C variant (Linux GCC 4.3.2, no optimization flags, not stripped) runs in 1.36 +/- 0.02 user+system seconds.
The Perl variant (5.10.0) takes 48.7 user+system seconds on the same machine.
Why is Perl so much slower at running the same algorithm? (Actually the C algorithm is slightly worse due to the extra comparison).
Keep in mind, the purpose of the code samples is completely tangential to this discussion--I am seeing similar performance with all tight processing loops. I am aware of the ability to use native C libraries with Perl (and other optimization techniques), but my question is not about optimization. I just want to get a better idea of what is making Perl so terribly slow with simple loops like the above.