SCIENTIFIC-LINUX-USERS Archives

April 2010

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Brett Viren <[log in to unmask]>
Reply To:
Brett Viren <[log in to unmask]>
Date:
Mon, 26 Apr 2010 18:15:11 -0400
Content-Type:
multipart/signed
Parts/Attachments:
text/plain (953 bytes) , smime.p7s (1762 bytes)
We recently started running our C++ analysis code on 64bit SL5.3 and
have been surprised to find the memory usage is about 2x what we are
used when running it on 32 bits.  Comparing a few basic applications
like sleep(1) show similar memory usage.  Others, like sshd, show only a
30% size increase (maybe that is subject to configuration differences
between the two hosts).

I understand that pointers must double in size but the bulk of our
objects are made of ints and floats and these are 32/64 bit-invariant.
I found[1] that poorly defined structs containing pointers can bloat
even on non-pointer data members due the padding needed to keep
everything properly aligned.  It would kind of surprise me if this is
what is behind what we see.

Does anyone have experience in understanding or maybe even combating
this increase in a program's memory footprint when going to 64 bits?

Thanks,
-Brett.

[1] http://www.codeproject.com/KB/winsdk/Optimization_64_bit.aspx#IDAJLKNC


ATOM RSS1 RSS2