Compiled perl executable

Discussion in 'Perl Misc' started by owinsloe@gmail.com, Jul 8, 2008.

  1. Guest

    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
    , Jul 8, 2008
    #1
    1. Advertising

  2. Ben Morrow Guest

    Quoth :
    > 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]
    Ben Morrow, Jul 8, 2008
    #2
    1. Advertising

  3. Tad J McClellan, Jul 8, 2008
    #3
  4. On Jul 7, 10:52 pm, wrote:
    > 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?
    nolo contendere, Jul 9, 2008
    #4
  5. On Jul 8, 1:38 am, wrote:

    > Excuse me, gents.  What is 'pp'?


    for detailed info, google 'perl pp'.
    nolo contendere, Jul 9, 2008
    #5
  6. O Guest

    On Jul 8, 3:09 pm, Ben Morrow <> wrote:
    > Quoth :
    >
    > > 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]


    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.
    O, Jul 9, 2008
    #6
  7. O Guest

    On Jul 8, 5:38 pm, wrote:
    > On Tue, 8 Jul 2008 04:09:06 +0100, Ben Morrow <> wrote:
    >
    > >Quoth :
    > >> 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

    >
    > Excuse me, gents. What is 'pp'?


    Its part of the Perl PAR package that allows you to compile your
    scripts into an executable. This enables you to distribute to another
    server/pc that does not have Perl installed ->
    http://search.cpan.org/~autrijus/PAR-0.85/script/pp
    O, Jul 9, 2008
    #7
  8. Ben Morrow Guest

    Quoth O <>:
    > On Jul 8, 3:09 pm, Ben Morrow <> wrote:
    > > Quoth :
    > >
    > > > 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?

    <snip>
    > >
    > > 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.

    >
    > 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

    --
    I must not fear. Fear is the mind-killer. I will face my fear and
    I will let it pass through me. When the fear is gone there will be
    nothing. Only I will remain.
    Frank Herbert, 'Dune'
    Ben Morrow, Jul 9, 2008
    #8
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Josephine Schafer
    Replies:
    1
    Views:
    3,589
    Philip Morley
    Jul 21, 2003
  2. Klaus Schneider
    Replies:
    1
    Views:
    527
    Rolf Magnus
    Dec 2, 2004
  3. John
    Replies:
    16
    Views:
    487
    Mark McIntyre
    Sep 29, 2006
  4. lander
    Replies:
    5
    Views:
    576
    bruce barker
    Mar 5, 2008
  5. Arne Vajhøj
    Replies:
    7
    Views:
    975
    Paul Cager
    Apr 4, 2010
Loading...

Share This Page