From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,f479f3331eef5353,start X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!newsfeed.kamp.net!newsfeed.kamp.net!newsfeed.straub-nv.de!aioe.org!not-for-mail From: Dennis Hoppe Newsgroups: comp.lang.ada Subject: Size of Vector limited to 1024 MB of Heap Size Date: Tue, 24 Jun 2008 10:44:54 +0200 Organization: Aioe.org NNTP Server Message-ID: NNTP-Posting-Host: eMiPQ4LLfe0jogz7uKjk1A.user.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) Xref: g2news1.google.com comp.lang.ada:832 Date: 2008-06-24T10:44:54+02:00 List-Id: Hi, my machine has 4 GB of RAM and I am wondering, why I can't use at least 2 or 3 GBytes to run an Ada program. It seems, that my Ada Compiler (Gnat 4.4.0) limit the memory to 2 GB per default. Is it possible to allocate more than 2 GB? Here is a simple example of an "evil" vector, that gains more memory in each pass. The program terminates exactly at 1024 MB of used Heap memory. with Ada.Containers.Vectors; procedure Heap is package Generic_Vector is new Ada.Containers.Vectors (Element_Type => Integer, Index_Type => Natural); Evil_Vector : Generic_Vector.Vector; begin -- Heap loop Generic_Vector.Append (Evil_Vector, Integer'Last); end loop; end Heap; heap(6374) malloc: *** mmap(size=2147487744) failed (error code=12) *** error: can't allocate region *** set a breakpoint in malloc_error_break to debug raised STORAGE_ERROR : heap exhausted I could not find a suitable Compiler switch or a parameter, that can be set for the operating system (linux). "ulimit -v" is already set to unlimited. "gnatmem" reports, that my water mark with 1024 MB is reached, but the final water mark is, needless to say, higher. Best regards, Dennis Hoppe