This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Finding the amount of free memory (Was: Optimize causes an error.)


On 7/11/07, Rask Ingemann Lambertsen <rask@sygehus.dk> wrote:
On Tue, Jul 10, 2007 at 05:48:49PM -0400, LWATCDR wrote:
>
> And now for a simple question. How the heck to I find out how much
> free memory I have in c?

The short answer: You don't.

> None of the programmers at my office know because we haven't needed to
> check for free memory for many years.

  The longer answer: No system with multitasking can answer that question
in any useful way because by the time the return value reaches the tasks
which wants to know, the value is already outdated.

taskman.exe seems to do it pretty well on a Win32 platform. Total physical memory, total physical available memory, system cache, kernel memory, etc etc. The value isn't outdated on the order of gigabytes or hours. It may not be 100% deterministic, but to say that you can't do it in any useful way would imply that numeroud system tools that we have at our disposal are totally useless.

The reality is that you need to find the right system API for whatever
environment you are in.  Windows provides that, and I'm sure others
do, too.  A simple `cat /proc/meminfo` in a linux system, for example,
will provide all of this data and tons more.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]