Compiled perl executable

O

owinsloe

Anyone else noticed on Windows that when you run a compiled perl
script (compiled using pp) it causes TWO copies of the executable to
run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
same script in 5.8.6 only runs one copy. I want to revert to only one
copy, ....2 copies looks ugly and can be confusing as to whats going
on (through Windows task manager), especially if you are running
multiple instances of the same executable. Ta
 
B

Ben Morrow

Quoth (e-mail address removed):
Anyone else noticed on Windows that when you run a compiled perl
script (compiled using pp) it causes TWO copies of the executable to
run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
same script in 5.8.6 only runs one copy. I want to revert to only one
copy, ....2 copies looks ugly and can be confusing as to whats going
on (through Windows task manager), especially if you are running
multiple instances of the same executable. Ta

If you use Sysinternals' procexp.exe instead of Task Manager, you will
see that one is the child of the other: the parent is the instance you
started, and the child is a new copy that has been created in the par-
xxxx temp directory and is the one actually doing all the work. I don't
really know why this is necessary, but it's probably part of getting
Windows' dll loader to do the right thing.

Ben
 
N

nolo contendere

Anyone else noticed on Windows that when you run a compiled perl
script (compiled using pp) it causes TWO copies of the executable to
run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
same script in 5.8.6 only runs one copy. I want to revert to only one
copy, ....2 copies looks ugly and can be confusing as to whats going
on (through Windows task manager), especially if you are running
multiple instances of the same executable. Ta

why did you compile it? what's the performance comparison against the
uncompiled version?
 
O

O

Quoth (e-mail address removed):
Anyone else noticed on Windows that when you run a compiled perl
script (compiled using pp) it causes TWO copies of the executable to
run? I'm running perl5.8.8 and previously perl5.8.6. A compile of the
same script in 5.8.6 only runs one copy. I want to revert to only one
copy, ....2 copies looks ugly and can be confusing as to whats going
on (through Windows task manager), especially if you are running
multiple instances of the same executable. Ta

If you use Sysinternals' procexp.exe instead of Task Manager, you will
see that one is the child of the other: the parent is the instance you
started, and the child is a new copy that has been created in the par-
xxxx temp directory and is the one actually doing all the work. I don't
really know why this is necessary, but it's probably part of getting
Windows' dll loader to do the right thing.

Ben

--
It will be seen that the Erwhonians are a meek and long-suffering people,
easily led by the nose, and quick to offer up common sense at the shrine of
logic, when a philosopher convinces them that their institutions are not based
on the strictest morality. [Samuel Butler, paraphrased] (e-mail address removed)

Thanks Ben, I guessed that was the case. The behaviour must have
changed as it did not do this for 5.8.6 (only ran one exe). If
possible I would like to go back to having only one exe but I could
not find anything through the PAR/PP doc that suggested there was a
compile time option that would achieve this.
 
B

Ben Morrow

Quoth O said:
Thanks Ben, I guessed that was the case. The behaviour must have
changed as it did not do this for 5.8.6 (only ran one exe). If
possible I would like to go back to having only one exe but I could
not find anything through the PAR/PP doc that suggested there was a
compile time option that would achieve this.

I rather doubt it's related to perl version. It's much more likely
related to either PAR.pm version or the options you passed to
PAR::packer. AFAICT, with current versions of pp you get two instances
if you don't pass -d or if your perl wasn't built with a shared libperl
(but practically all Win32 perls are), but I don't really understand any
of this so ICBW.

Ben
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top