i also did an asteroid game in clojure. i don't think you can ever achieve the performance of hackedyhack-mutablility with pure functional algorithms - my approach to get the best performance while staying as clean as possible would be to keep two copies of the game world, using one as source data and generating the next version into the other, and vice versa. similar to double buffering. as long as you can guarantee that objects in the "working copy" are just data that is not referenced anywhere, you can pretend that an "initAll" method on an object is nothing else than a fully working constructor - just that the object you initialize is initially filled with random data instead of not yet existing. you can pretend it's new, and pretend your algorithms are functional^^
2014-03-13 0:19 GMT+01:00 Jacob Goodson <submissionfight...@gmx.com>: > Let me state that, as long as it is a asteroids clone, it is fine. > However, compared to Java, the performance was much worse(when just playing > with it and drawing tons of asteroids in opengl). Also, I do not know what > you mean when you say that you have tested it... the > > pure way or the mutate objects in place way? I can get great performance > with clojure, no doubt about it, by violating the shat out of functional > programming. I can not get great performance with the beautiful, pure, > composable, clojure that I desire! I have seen many game > > examples in "clojure" where, basically, clojure is just a scripting > language that wraps java. It is no problem if this is the case, my > question has jack crap to do about getting good performance writing > asteroids. My question is: Will clojure(the immutable composable side) > > benefit from shenandoah(blasted font) at all? Can someone who knows a > good bit about clojure tell me if a more powerful garbage collector would > allow us clojurians to be more pure or is it something else inherently in > immutable land that will "never"(it will take a long time) get fixed. > > > On Wednesday, March 12, 2014 6:53:43 PM UTC-4, James Reeves wrote: > >> I've done a fair bit of experimentation with writing games in Clojure, >> and I haven't noticed any major performance issues. If you're getting >> issues on a 2D asteroids clone, I suspect there might be something >> inefficient in your code. I find Criterium useful for benchmarking parts of >> my code in isolation to get an idea of how its running. >> >> - James >> >> >> On 12 March 2014 21:53, Jacob Goodson <submissio...@gmx.com> wrote: >> >>> How many people have heard of this GC? http://www.jclarity.com/2014/ >>> 02/19/shenandoah-a-new-low-pause-garbage-collection- >>> algorithm-for-the-java-hotspot-jvm/ >>> >>> I want to know if this would benefit clojure. I wrote a small asteroids >>> game in clojure and the performance was not good. I stuck to purity when >>> writing the game, only "mutating" my data after it had passed through a >>> bazillion pure functions. I was wondering, would a GC like this one(or >>> Azul's) make a significant impact so that I, or others, could make games in >>> a more pure fashion? I WANT MY EFFIN PURITY! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@googlegroups.com >>> >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+u...@googlegroups.com >>> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+u...@googlegroups.com. >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.