It wont solve your performance problem but I think that your python code
translates to:
(defn f[a b c]
(+ (* c c c c) (* b b b) (* a a)))
(count
(into #{}
(for [c primes :while (< (f (first primes) (first primes) c) limit)
b primes :while (< (f (first primes) b c) limit)
a primes :let [x (f a b c)] :while (< x limit)]
x)))
Could you run your tests with -XX:+PrintGCDetails passed to the jvm?
Christophe
tristan a écrit :
> Hi guys,
>
> I'm loving Clojure, but i'm having a lot of trouble writing programs
> in it that run as fast as my python equivalents.
> One example is code i've written for projecteuler.net problem 87 (for
> those who don't want to see any solutions don't click the links
> below :))
> my python version
> http://github.com/tristan/project-euler-code/blob/4a17bc271b4b2743ee1d5b5692f86f963c6bcc7b/0087.py
> runs in ~4 seconds (timed using cygwin "time python 0087.py" whereas
> my clojure version
> http://github.com/tristan/project-euler-code/blob/4a17bc271b4b2743ee1d5b5692f86f963c6bcc7b/0087.clj
> takes over 20 seconds (time gotten from (time call in the code). This
> is quite disheartening for me as well since i wrote the python version
> in about a minute and haven't even thought about optimizations yet. It
> was just written as a test since i was unhappy with the speed of my
> clojure version even after re-writing it a few times and shaving off
> about 20 seconds from my original.
>
> I'm sure there must be something i'm doing wrong, or thinking wrongly
> about hence why i'm not getting the speed i need. Can anyone suggest
> any alternate ways to write this? or anything to speed it up? I really
> enjoy programming in Clojure, but speed is starting to become an issue
> with me.
>
> Thanks
> -Tristan
> >
>
>
--
Professional: http://cgrand.net/ (fr)
On Clojure: http://clj-me.blogspot.com/ (en)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---