By my experience only, I'd say 64bit perl can be as much as 1/3 slower.  It
is easy to change the #! line to 64 bit and see the effects of running it as
such.

The following gives out of memory at 24GB and works for 23GB on a 6800 with
48GB of RAM, OS8

#!/usr/local/bin/perl64 -w

use constant MB => (1024 * 1024);
use constant GB => (1024 * MB);

print "yep" if T();

sub T() {
        return 'a' x (( 23 * GB) - 1);
}

1;
------------------------

I'm not sure where I got 3GB from... it is either the max program size or
the max size of an array or some such..  I guess it is not important enough
to track down right now.  I'll believe 4GB til I hit that 3GB number again
and need to answer it definitively...



----- Original Message -----
From: "Jarkko Hietaniemi" <[EMAIL PROTECTED]>
To: "Tim Harsch" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Tuesday, November 26, 2002 4:18 PM
Subject: Re: perl-64bit


> > Well one thing it is, is Perl that allows you to use the OS memory
> > allocation funtions.  This allows you to write Perl programs that can
use
> > more than 3GB of addressable RAM.  Although you are still limited to 3GB
per
> > single data structure.  The prequisite is that your operating system and
> > architecture must be 64bit, eg. Sparc/Solaris.  By its very nature
though
> > your Perl programs become overall a bit slower due to the fact that you
must
> > use larger than 32bit to address memory, ie more bits to shuffle for
every
> > memory address.
>
> s/3GB/4GB/g;
>
> Yes, people have (just for the fun of it) had Perl scalars greater
> than 4 gigabytes.  Whether there's any real slowdown, I don't know,
> but my gut instinct says that Perl spends most its time elsewhere and
> 64-bitness doesn't really cause that much of a slowdown.
>
> 64-bitness is not only about the 4GB data size limit; there's also
> the feature of having 64-bit integers, which is related (and precursor)
> to having larger files than 2GB/4GB (depends on whether you measure by
> signed or unsigned).  Having 64-bit integers means that Perl can for
> longer keep numbers as integers before slipping into floating point.
>
> > Someone else may be able to provide better details, but that is the gist
of
> > it.
>
> Nowadays (this mailing list is a bit dusty, try Perl 5.8.0 or 5.6.1)
> getting integer 64-bitness is a question of
>
> Configure -Duse64bitint
>
> and the data size 64-bitness
>
> Configure -Duse64bitall
>
> Warning: either, and especially the latter, will produce Perls that
> are binarily incompatible with Perls Configured without any-Duse64*.
>
> --
> Jarkko Hietaniemi <[EMAIL PROTECTED]> http://www.iki.fi/jhi/ "There is this
special
> biologist word we use for 'stable'.  It is 'dead'." -- Jack Cohen

Reply via email to