[racket] universe program using 100% cpu on Mac (also poor Raspberry Pi performance)

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Dec 29 11:39:39 EST 2014

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. 

A couple of comments on the code: 

 -- I'd place the main function at the top of the function section of the file 
      right below the constant definitions and data definitions 
	[I modified 2e to bring this across but you might be reading the stable version.]

 -- I also run (main initial-state) out of the repl not the main buffer. 

 -- Your file is missing tests. 

 -- Some functions are also missing proper signatures and purpose statements. 

But I know "it works" see my homepage :-) 

-- Matthias



On Dec 29, 2014, at 10:46 AM, Darren Cruse wrote:

> Re:
> Could you post the code somewhere so we can experiment with it? 
> 
> Here it is it's all in one file:
> pong-world.rkt
> 
> On Mon, Dec 29, 2014 at 8:05 AM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> 
> On Dec 28, 2014, at 9:51 PM, Darren Cruse wrote:
> 
>> One thing I can see is that on-draw is called for every on-tick on all three platforms btw.
>> 
>> And even in cases where the program is idling and on-tick has simply returned the world state it was given unmodified.  
>> 
>> 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.
> 
> 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. 
> 
> 
> 
>> (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)
> 
> 
> My Mac-based experiments suggest that this call is not the cause of performance problems. 
> 
> ;; --- 
> 
> Could you post the code somewhere so we can experiment with it? 
> 
> Thanks -- Matthias
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141229/17d4b092/attachment.html>

Posted on the users mailing list.