I'm intrigued, but I don't know exactly what you mean.

On Thursday, 12 May 2016 16:25:05 UTC-7, James Reeves wrote:
>
> Have you considered defining specific indexes? For instance, if you know 
> ahead of time that you want to search for entities that have both position 
> and velocity, you could define an index that keys both of those values.
>
> - James
>
>
>
> On 12 May 2016 at 23:50, JvJ <kfjwh...@gmail.com <javascript:>> wrote:
>
>> 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 <brob...@gmail.com> 
>>> 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 clo...@googlegroups.com 
>> <javascript:>
>> 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 <javascript:>
>> 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 <javascript:>.
>> 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.

Reply via email to