http://qs1969.pair.com?node_id=1082358


in reply to Delay running Perl execs in Windows

I'm no expert on this, but here's the general gist of what I took away from Reini Urban's presentation on the Perl compiler. (http://houston.pm.org/talks/2011talks/1110Talk/index.html)

The 'pp' utility is just packaging the Perl interpreter, modules and your code. Running the pp created executable means that it has to unpack the packed files, setup the Perl environment and then run your code. In your case, the initial run does the heavy lifting on the preparation tasks (unpacking files, etc.) and the subsequent runs are able to leverage the preparation work from the first run.

From Reini's presentation, he's referring to B::C, which I personally have never used. This will actually compile your code (or actually converts Perl into C code and then compile the C code). In this case, the execution time of your Perl code is not any faster (i.e. adding numbers, reading files, etc.), but the start up time can be significantly faster.

Honestly, most of Reini's presentation went over my head. Hopefully I've accurately described the start up time differences between packaging Perl code into an executable (i.e. using pp) vs. compiling the Perl code into an executable (i.e. B::C).

  • Comment on Re: Delay running Perl execs in Windows