<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Hi Darren, thanks for the link to the repo. I cloned it, successfully played with and without sound on a mac book -- inside of drracket and from the command line-- and never observed a load over 60% for drracket and ditto for plain racket. That doesn't mean that your 100% problem doesn't exist, it's just that I can't reproduce it. </div><div><br></div><div>A couple of comments on the code: </div><div><br></div><div> -- I'd place the main function at the top of the function section of the file </div><div>      right below the constant definitions and data definitions </div><div><span class="Apple-tab-span" style="white-space:pre">     </span>[I modified 2e to bring this across but you might be reading the stable version.]</div><div><br></div><div> -- I also run (main initial-state) out of the repl not the main buffer. </div><div><br></div><div> -- Your file is missing tests. </div><div><br></div><div> -- Some functions are also missing proper signatures and purpose statements. </div><div><br></div><div>But I know "it works" see my homepage :-) </div><div><br></div><div>-- Matthias</div><div><br></div><div><br></div><br><div><div>On Dec 29, 2014, at 10:46 AM, Darren Cruse wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Re:<div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.6666669845581px">Could you post the code somewhere so we can experiment with it? </span></blockquote><div><br><div>Here it is it's all in one file:</div><div><a href="https://github.com/darrencruse/pong-world-racket/blob/master/pong-world.rkt">pong-world.rkt</a><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 29, 2014 at 8:05 AM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><div>On Dec 28, 2014, at 9:51 PM, Darren Cruse wrote:</div><br><blockquote type="cite"><span style="border-collapse:separate;font-family:'Lucida Grande';font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><div>One thing I can see is that on-draw is called for every on-tick on all three platforms btw.</div><div><br></div><div>And even in cases where the program is idling and on-tick has simply returned the world state it was given unmodified.  </div><div><br></div><div>Is that normal I wonder?  Part of me thought that since to-draw is a function of the world state, and the world state hasn't changed, that it would *not* call to-draw in that case.</div></span></blockquote><div><br></div></span><div>I experimented with this 'optimization' and, if I recall correctly, it didn't make much of a difference and got in the way of imperative world programs. So I took it out. Mea culpa, I should have commented on this experiment inside the code. </div><span class=""><div><br></div><div><br></div><div><br></div><blockquote type="cite">(but it calls to-draw for every on-tick even on the Windows machine which is using only 6% cpu - so maybe I'm wrong to look to that as the problem)</blockquote><br></span></div><div><br></div><div>My Mac-based experiments suggest that this call is not the cause of performance problems. </div><div><br></div><div>;; --- </div><div><br></div><div>Could you post the code somewhere so we can experiment with it? </div><div><br></div><div>Thanks -- Matthias</div><div><br></div><br></div></blockquote></div><br></div>
</blockquote></div><br></body></html>