Yeah, I&#39;ve already found that in vm.c . I&#39;ll have to enable place, but right now, as you may notice, I&#39;m trying to run Racket engine on iOS, and I want to start from the simple hygienic interpreter. Actually, I&#39;m curious about why even a &quot;hello world&quot; test requires more than 30MB memory. I&#39;ve ever got Guile (GNU Scheme implementation) 1.6 running on iPhone (not iPad) last year without &quot;out of memory&quot; issue. Maybe it is possible to reduce some unnecessary allocation? Can I make &quot;APAGE_SIZE&quot; smaller instead of current 16K? Thanks!<div>
<br></div><div>Nevo<br><br><div class="gmail_quote">On 23 April 2011 18:55, Kevin Tew <span dir="ltr">&lt;<a href="mailto:tewk@cs.utah.edu">tewk@cs.utah.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    BLOCK_CACHE IS enabled by default in 5.1.1.3.<br>
    #define MZ_USE_PLACES (the default as of 5.1.1.3) enables block
    cache (see top of gc2/vm.c file).<br>
    <br>
    If you have a pre 5.1.1 version or have places disabled, then my
    block cache patch won&#39;t be of any help.<br><font color="#888888">
    <br>
    Kevin</font><div><div></div><div class="h5"><br>
    <br>
    <br>
    <br>
    On 04/23/2011 01:09 AM, Nevo wrote:
    <blockquote type="cite">hi Kevin:<br>
        Your patch seems requiring &quot;USE_BLOCK_CACHE&quot; to be enabled.
      Sorry for my lack of knowledge into Racket&#39;s memory management
      component, how can I safely enable that because I cannot find its
      reference in configure or Makefile.in? Thanks!<br>
      <br>
      Nevo<br>
      <br>
      <div class="gmail_quote">On 23 April 2011 14:27, Nevo <span dir="ltr">&lt;<a href="mailto:sakur.deagod@gmail.com" target="_blank">sakur.deagod@gmail.com</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          hi Robby<br>
            Just back from out of town, sorry for the late reply.<br>
            No. This doesn&#39;t help at all, still got low-memory killing
          on my ipad. Actually, my own test is all based on &quot;#lang
          racket/base&quot;. I&#39;ll try Kevin&#39;s patch to see any difference.
          I&#39;ve also tried to throttle the max_pages_in_heap to allow
          around 25MB pages to use, it will soon throw &quot;out of memory&quot;
          exception and abort after a couple of GC cycles.<br>
          <font color="#888888">
            <br>
            Nevo</font>
          <div>
            <div><br>
              <br>
              <div class="gmail_quote">On 22 April 2011 19:08, Robby
                Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>&gt;</span>
                wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  This program:<br>
                  <br>
                   #lang racket/base<br>
                   (printf &quot;hi\n&quot;)<br>
                  <br>
                  uses a lot less memory than this one:<br>
                  <br>
                   #lang racket<br>
                   (printf &quot;hi\n&quot;)<br>
                  <br>
                  Does that help at all?<br>
                  <br>
                  Robby<br>
                  <div>
                    <div><br>
                      On Fri, Apr 22, 2011 at 12:09 AM, Nevo &lt;<a href="mailto:sakur.deagod@gmail.com" target="_blank">sakur.deagod@gmail.com</a>&gt;
                      wrote:<br>
                      &gt; hi<br>
                      &gt;   My attempt on porting Racket interpreter to
                      iOS has been for a while and<br>
                      &gt; I&#39;ve been able to run interpreter on both iOS
                      device as well iOS simulator.<br>
                      &gt; Right now, it runs perfectly on iOS
                      simulator, but lack of satisfaction on<br>
                      &gt; device. The reason is for those devices like
                      iPad/iPhone or Android, the<br>
                      &gt; memory for standalone application is always
                      constrained, and even a single<br>
                      &gt; &quot;hello world&quot; evaluation would easily put the
                      whole app runtime to death,<br>
                      &gt; per my test. In particular, here I&#39;ve got
                      some commented out &quot;printf&quot; code<br>
                      &gt; compiled in for newgc.c, and trying to load a
                      simple &quot;hello world&quot; racket<br>
                      &gt; file to evaluate results in more than 30MB
                      memory in use (reported by gc).<br>
                      &gt; This is nothing for a desktop, but will kill
                      itself easily in iOS which<br>
                      &gt; usually requires the average memory
                      allocation will be less than 20MB. So<br>
                      &gt; I&#39;m asking if there&#39;s some known compiling or
                      runtime configuration which I<br>
                      &gt; may not know to reduce memory usage, at least
                      keep average allocation<br>
                      &gt; acceptable for those memory constrained
                      devices. Thanks for your suggests<br>
                      &gt; here!<br>
                      &gt; Nevo<br>
                    </div>
                  </div>
                  &gt; _________________________________________________<br>
                  &gt;  For list-related administrative tasks:<br>
                  &gt;  <a href="http://lists.racket-lang.org/listinfo/dev" target="_blank">http://lists.racket-lang.org/listinfo/dev</a><br>
                  &gt;<br>
                </blockquote>
              </div>
              <br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div>