I'd have thought that vectors are eval'd sequentially, are they not?
FWIW I get the same kind of slowdown measurement between versions when
just employing the built-in time macro... will report back after the
profiling session, but it all seems v. odd!

On 3 October 2012 02:36, Ben Wolfson <wolf...@gmail.com> wrote:
> time-action seems to assume that the elements of a vector literal are
> evaluated sequentially in order of index---is that guaranteed?
>
> On Tue, Oct 2, 2012 at 6:35 PM, Karsten Schmidt <toxmeis...@gmail.com> wrote:
>> Hi Andy, the timings were collected with two litte macros I've written
>> and which are available here:
>> http://hg.postspectacular.com/macrochrono/src/tip/src/macrochrono.clj
>>
>> The actual project in question will be released in the next few
>> months, once things are more stable.
>>
>> I haven't run a profiler yet, but will try tomorrow...
>>
>> Thanks, K.
>>
>> On 3 October 2012 01:40, Andy Fingerhut <andy.finger...@gmail.com> wrote:
>>> I'm not aware of what changes made in 1.4 could cause this performance 
>>> degradation.
>>>
>>> Out of curiosity, are you willing to share your code for performance 
>>> profiling of future Clojure versions?  i.e. is it open source already and 
>>> so that wouldn't be a problem, or is it closed source?
>>>
>>> Have you run a profiler on your tests to see where the time is spent with 
>>> Clojure 1.3 vs Clojure 1.4?
>>>
>>> Andy
>>>
>>> On Oct 2, 2012, at 4:24 PM, Karsten Schmidt wrote:
>>>
>>>> Today, I decided to finally switch one of my projects from Clojure
>>>> 1.3.0 to 1.4.0 (and test driving the 1.5.0 snapshot) but quickly found
>>>> some discouraging effects in terms of performance. The project
>>>> involves a lot of geometry and I'm using vanilla vectors for all
>>>> vector math. So far I've *not* been using any type hints or casting,
>>>> but was generally happy with the performance under 1.3.0...
>>>>
>>>> Under 1.3.0, e.g. a Delaunay triangulation of 5000 random 2D points
>>>> resulting in approx. 9450 triangles takes:
>>>>
>>>> average 422ms / minimum 393ms - version with transients: avg. 358ms / min. 
>>>> 324ms
>>>>
>>>> The exact same code under 1.4.0:
>>>>
>>>> average 695ms / minimum 640ms - version with transients: avg. 672ms / min. 
>>>> 616ms
>>>>
>>>> That's 1.65x slower and the only thing changed is the clojure version
>>>> number in project.clj. 1.5.0 snapshot is in the same league... :( Also
>>>> note that the impact of transients is much reduced compared to
>>>> 1.3.0...
>>>> (All stats collected over 60sec duration.)
>>>>
>>>> Has there been another overhaul or behavior change of numerics in
>>>> these recent versions? I'm really quite suprised/shocked by this find
>>>> and can't explain it to myself. I was hoping to use the library also
>>>> from CLJS in the future and hence have stayed away from adding type
>>>> hints and explicit casting...
>>>>
>>>> Thanks for any insights!
>>>>
>>>> Best, K.
>>>
>>> --
>>> 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
>>
>> --
>> Karsten Schmidt
>> +44 7875 524 336
>>
>> http://postspectacular.com | http://toxiclibs.org | http://toxi.co.uk
>>
>> --
>> 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
>
>
>
> --
> Ben Wolfson
> "Human kind has used its intelligence to vary the flavour of drinks,
> which may be sweet, aromatic, fermented or spirit-based. ... Family
> and social life also offer numerous other occasions to consume drinks
> for pleasure." [Larousse, "Drink" entry]
>
> --
> 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



-- 
Karsten Schmidt
+44 7875 524 336

http://postspectacular.com | http://toxiclibs.org | http://toxi.co.uk

-- 
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

Reply via email to