On 12 Jul 2004 at 11:06, Jesse Schoch wrote:
> I notice that using the perl in %PATH% my memory consumption is ~14M,
> but when running the exe pp -o foo.exe foo.pl it consumes ~20MB, and
> pp -d -o foo.exe foo.pl eates 26MB!!! Any ideas why? Foo.pl does not
> change for these 3 tests.
>
> I'm using perl 8.1.2 build 808 active state dist.
>
> -jess
After making a number of patches this week that I think guarantee that there is
no
unneccessary extracting and loading, I see that par.pl in the frontend eats
about 6-8MB
of memory before the packed app starts to run. This is primarily due to the
loading of
all the dependencies for par.pl to do any of the things it might have to do.
I haven't found any great waste of variable space and I have not succeeded in
forcing
any significant garbage collection of space. Perhaps it could be reduced by
early
decision of what mode par.pl is in (packing, unpacking and running) and only
loading
those dependencies needed for that mode, but I don't think that would be
dramatic.
The increase for the packed app itself after par.pl has primed everything is
less than
the memory for the same app from a perl command line. That would be expected
because
the perl5x.dll is already loaded.
I have not seen an additional increase for "pp -d" exe's. In the examples I
have looked
at, -d and non -d apps are close in memory footprint (<.5MB difference). Do you
have a
simple example of one that differs by more, perhaps an example with nothing but
the
"use" and "requires" and a "sleep", that does it? What is your "foo.pl"?
Alan Stewart
|