On 1/19/2010 4:17 PM, Jan Dubois wrote:
On Mon, 18 Jan 2010, Michael Ellery wrote:
Thanks for that patch. I've patched the file on my system and rebooted -
now I see times shown below. Now my first startup time is only double my
steady state time, which seems to be an improvement (previous run was
more than 3 times the subsequent time). However, since the patch appears
in a .pm file, shouldn't this change have an impact *every time* the
script is executed, or is this code only loaded under certain conditions?
I suspect that there is some OS level caching going on. I think some of
the type libraries installed on your machine are stored on a network drive
and not on a local disk.
I don't have time to work out right now if we need those file tests at all,
but I have another idea that might speed up the code some more: In front
of the line that you modified with the patch insert the following line:
local ${^WIN32_SLOPPY_STAT} = 1;
Please let me know if this has any effect on your startup time.
Cheers,
-Jan
Jan,
thanks again for these mysterious patches. Yes, this had a positive
effect - now with this patch plus the previous patch in place, my first
vs. subsequent run times are 15s vs 10s. This is a considerable
improvement over the 30s vs 10s that I was previously seeing.
Can you shed a little light on what this WIN32_SLOPPY_STAT does - I'm
guessing it uses a faster set of APIs for gathering file stat info -
perhaps at the cost of accuracy?
As for typelibrary location - all of my com objects and typelibs should
be local (I build debug locally). The only thing I'm aware of that
*could* be pulled from the network are the debug symbols from microsoft,
which we store on a network share since they are rather large. This slow
startup time is observed with release builds of our objects too (I have
not yet tried your patches with a release build..), and those should
have no network dependencies. Our com objects are all compiled code and
the typelib info is built-in, so we don't ship separate typelib files (I
don't know if that makes any difference here...)
Thanks again for your help.
-Mike
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs