Thanks for the input Jozef.

I just want to clarify that I am not doing any nested reduce calls within 
my code.

Alex

On Monday, November 17, 2014 1:00:43 PM UTC+2, Jozef Wagner wrote:
>
> I would look for unncessary object creation inside reduction function (use 
> transients) and lazy seq realization (realize only what you really need). 
> Calling reduce inside reduce (inside reduce...) may easily make the 
> complexity of your code exponential. Consider caching of intermediate 
> results if that's the case.
>
> You can also consider switching to reducers/transducers, which may clean 
> your design. In that case, the call to reduce should be as high in 
> hierarchy as possible, ideally in your top level function, with other 
> functions dealing with the transformation of 'step' values.
>
> Jozef
>
> On Mon, Nov 17, 2014 at 11:28 AM, Alexander L. <alexand...@gmail.com 
> <javascript:>> wrote:
>
>> Hi all,
>>
>> I understand that the following question is a long shot without any 
>> proper proof/tests from my side but it's a little bit difficult to make a 
>> test case from the specific part of my app so I will just ask anyway in 
>> case anyone knows anything.
>>
>> The situation is like this: 
>>
>>    - I have a hashmap with *3386* items that I pass through few 
>>    functions in order to append new keys or update existing ones to each 
>>    hashmap entry.
>>    - Each hashmap item has 20 keys with various data types (mostly 
>>    strings)
>>    - All my transformation functions use `reduce`.
>>
>> The problem:
>>
>> I have a top level function which I inside it I call 7 other functions 
>> (all written by me) and for some reason I haven't discovered is that it 
>> needs around 2 seconds to return a result even though the items aren't many.
>> Now, i used `time` to benchmark each function and when I found which one 
>> is taking a lot of time to return, after I removed it, I discovered that 
>> the problem still existed but now moved on to a different function.
>>
>> I did a bunch of tests with those 3386 on the REPL and reduce but I 
>> didn't notice anything weird/slow so it must be a combination of things. 
>> Also, i doubt that this is a RAM problem, i have allocated 4GB for the JVM. 
>>
>> So, my question is, has anyone every seen a situation like this with a 
>> bunch of `reduce` calls? Is there anything at all that I should check and 
>> maybe missed it? 
>>
>> Regards
>>
>> Alex
>>
>> -- 
>> 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