Maybe this is a little off-topic, but on the general topic of performance, 
other than just numerical performance, what's the best way to get 
information/advice on how to improve it.

I went about doing these tests (and other tests) because I'm trying to 
create a game scripting framework in clojure, which I want to build around
an entity-component-system architecture.  Entities are maps of components, 
and system functions are defined to sort of "pattern match" against
entities to see if they have the required components.  (i.e. an 
update-position function would add velocity to position, so it only applies 
to entities
with both a position and a velocity component).

The first step in this process is to find a way to store these so that it 
would be as fast as possible to iterate over "all entities with this set of 
components",
while avoiding things like filter operations.

I started off by making cross-map <https://github.com/JvJ/cross-map>, which 
cross-indexes any entries with keys of the form [r c], where r is a row and 
c is a column, and allows O(1) access
of entire rows and columns.

Still, though, the performance tests 
<https://github.com/JvJ/cross-map/blob/master/test/cross_map/perf.cljc> 
aren't what I expected they would be, and I'm wondering how to go about 
dealing with that.

Again, this isn't strictly about numerical performance, but it's why I'm 
doing these kinds of tests in the first place.

Thanks.

On Thursday, 12 May 2016 15:23:07 UTC-7, raould wrote:
>
> On Thu, May 12, 2016 at 3:11 PM, Nicola Mometto <[email protected] 
> <javascript:>> wrote: 
> > Fair enough, but in this case types wouldn't really have helped: the 
> author did use `Double` type hints, mistakenly assuming that would make its 
> code use primitive types, which it does not since `Double` is boxed and not 
> primitive. 
> > Clojure already has compile time warnings about boxed math that would've 
> helped in this case if turned on, without any need for types: try compiling 
> OP's code after running `(set! *unchecked-math* :warn-on-boxed)` 
>
> Thanks for the details re: double. Apologies for being annoyed/ing. 
>
> Next up: something like `(set! *unchecked-laziness* :warn-on-lazy)? We 
> can relive the ignominious history of "$!" in Haskell. 
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to