develooper Front page | perl.perl5.porters | Postings from January 2008

Re: [perl #50352] Perl 5.10 Storable extremely slow for large trees of data

Thread Previous | Thread Next
From:
Clinton Pierce
Date:
January 29, 2008 17:38
Subject:
Re: [perl #50352] Perl 5.10 Storable extremely slow for large trees of data
Message ID:
9e01efbb0801290824j5766e669l7f5edbdef09d60c7@mail.gmail.com
As a followup to myself, I ran perl -V on the 5.6 build that's nice and
fast.  The usemymalloc=n would seem to indicate that it's already using the
system-supplied malloc.

Summary of my perl5 (revision 5 version 6 subversion 0) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    usethreads=undef use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=undef d_sfio=undef uselargefiles=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
  Compiler:
    cc='cl', optimize='-O1 -MD -DNDEBUG', gccversion=
    cppflags='-DWIN32'
    ccflags ='-O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT
-DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_
MSVCRT_READFIX'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=4
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -release
-libpath:"D:\Perl\lib\CORE"  -machine:x86'
    libpth="C:\Program Files\Mts\Lib" "D:\Perl\lib\CORE"
    libs=  oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
  netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib  version.lib
odbc32.lib odbccp32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl56.lib
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -release
-libpath:"D:\Perl\lib\CORE"  -machine:x86'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY USE_ITHREADS PERL_IMPLICIT_CONTEXT
PERL_IMPLICIT_SYS
  Locally applied patches:
        ActivePerl Build 623
  Built under MSWin32
  Compiled at Dec 15 2000 16:27:07
  @INC:
    T:/Perl/lib
    T:/Perl/site/lib
    .






On Jan 29, 2008 11:19 AM, Clinton Pierce <clintp@gmail.com> wrote:

> More detail:
> >
> > There is definitely a difference between 5.6.2 and 5.10.0, but a far
> > more significant difference is brought about by using different mallocs:
> >
> > With 5.10.0 the freeze takes about 2.7 secs with the system malloc and
> > 0.03 secs with perl's malloc.
> > With 5.6.2 it takes about 0.9 secs with the system malloc and 0.03 secs
> > with perl's malloc.
> >
> > Not sure why the system malloc figure is slower with 5.10.0, but if the
> > 0.03 secs is more like the time that you were seeing previously, could
> > it be that your 5.6.x build was using perl's malloc and now your 5.10.0
> > build is using the system malloc? (ActivePerl builds use the system
> > malloc because perl's malloc currently doesn't work with "-D
> > PERL_IMPLICIT_SYS", which is required for the fork() emulation.)
> >
>
> Good find.
>
> And that pretty much leaves me up a creek.  I can't really use a
> self-built Perl for Production in my situation, and the supplied one is far,
> far too slow.  Maybe I'll have to find another distribution source or stay
> on 5.6.
>
>
>
>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About