同じperlのコードを、2台の違うサーバで動かした時に、やたらメモリ量が違うなぁと。
サーバ1: 50MBくらい
サーバ2: 200MBくらい
なんでだろと調べる
サーバ1で
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
osname=linux, osvers=2.6.26-1-vserver-amd64, archname=x86_64-linux-gnu-thread-multi
…
use64bitint=define, use64bitall=define, uselongdouble=undef
…
Compiler:
cc=‘cc’, ccflags =‘-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64’,
optimize=‘-O2 -g’,
cppflags=‘-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include’
ccversion=‘’, gccversion=‘4.3.2’, gccosandvers=‘’
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype=‘long’, ivsize=8, nvtype=‘double’, nvsize=8, Off_t=‘off_t’, lseeksize=8
alignbytes=8, prototype=define
1 2 3 4 5 6 7 |
|
% script/gtop.pl ‘use Catalyst’
10.5M : use Catalyst
% script/gtop.pl ‘use DBIx::Class’
396k : use DBIx::Class
% script/gtop.pl ‘use Moose’
Moose does not export its sugar to the ‘main’ package.
4.6M : use Moose
[/code]fmfm
サーバ2で
“`
% script/gtop.pl “use Catalyst”
42.6M : use Catalyst
% script/gtop.pl “use DBIx::Class”
920k : use DBIx::Class
% script/gtop.pl “use Moose ()”
17.9M : use Moose ()
[/code]!!!
搭載してるメモリ量は4GBとかで変わらないから、
リスクが無ければ32bitでコンパイルしたperlを使ったりするもんなのだろうか?