I got the same results. lein repl vs cake repl

eric-mans-macbook-2:perfect-number Eric$ lein repl
"REPL started; server listening on localhost:64419."
user=> (defn swapping [#^ints a n]
   (let [n (long n)
         size-1 (int (dec (count a)))]
     (loop [i (long n)
            j 0
            k 1]
       (if (zero? i)
         a
         (let [temp (int (aget a j))]
           (aset a j (aget a k))
           (aset a k temp)
           (recur (dec i)
                  (if (zero? j) size-1 (dec j))
                  (if (zero? k) size-1 (dec k))))))))
#'user/swapping
user=> (def a1 (int-array 12 (reverse (list 5 7 3 8 2 9 12 10 4 1 6
11))))
#'user/a1
user=> (time (vec (swapping a1 100000)))
"Elapsed time: 13219.589 msecs"


-----


eric-mans-macbook-2:perfect-number Eric$ cake repl
user=> (defn swapping [#^ints a n]
user=*    (let [n (long n)
user=*          size-1 (int (dec (count a)))]
user=*      (loop [i (long n)
user=*             j 0
user=*             k 1]
user=*        (if (zero? i)
user=*          a
user=*          (let [temp (int (aget a j))]
user=*            (aset a j (aget a k))
user=*            (aset a k temp)
user=*            (recur (dec i)
user=*                   (if (zero? j) size-1 (dec j))
user=*                   (if (zero? k) size-1 (dec k))))))))
#'user/swapping
user=> (def a1 (int-array 12 (reverse (list 5 7 3 8 2 9 12 10 4 1 6
11))))
#'user/a1
user=> (time (vec (swapping a1 100000)))
"Elapsed time: 57.03 msecs"
[12 9 2 8 3 7 5 11 1 6 4 10]



On Sep 25, 6:20 pm, Andy Fingerhut <andy.finger...@gmail.com> wrote:
> This happens for me on a Mac OS X system, and an Ubuntu Linux system,  
> and with Clojure 1.2.0 and 1.3.0-alpha1.  Here are steps for me to  
> reproduce with Clojure 1.2.0.
>
> Install Leiningen.
>
> % lein new clj-1.2.0
> % cd clj-1.2.0
>
> [ Optionally edit project.clj to remove dependency on contrib, leaving  
> only clojure 1.2.0.  This is only necessary if you want to convince  
> yourself that contrib has nothing to do with it. ]
>
> % ls -l lib
> -rw-rw-r-- 1 andy andy 3237168 Sep 24 23:47 clojure-1.2.0.jar
>
> % cat swapping.clj
> (defn swapping [#^ints a n]
>    (let [n (long n)
>          size-1 (int (dec (count a)))]
>      (loop [i (long n)
>             j 0
>             k 1]
>        (if (zero? i)
>          a
>          (let [temp (int (aget a j))]
>            (aset a j (aget a k))
>            (aset a k temp)
>            (recur (dec i)
>                   (if (zero? j) size-1 (dec j))
>                   (if (zero? k) size-1 (dec k))))))))
>
> (def a1 (int-array 12 (reverse (list 5 7 3 8 2 9 12 10 4 1 6 11))))
>
> (time (vec (swapping a1 100000)))
>
> % java -server -cp lib/clojure-1.2.0.jar clojure.main
>
> [ At this point, regardless of whether I copy and paste the forms in  
> swapping.clj into this session one by one to evaluate them, or if I do  
> load-file on it, the forms evaluate and the time reported for the last  
> one is about 60 msec. ]
>
> % java -client -cp lib/clojure-1.2.0.jar clojure.main
>
> [ Same results as above, again, whether I copy and paste the forms, or  
> use load-file.  The timing results are a little bit different because  
> of -client vs. -server on the command line, but not much different. ]
>
> % lein repl
>
> [ Here, if I do load-file, the timing results are about the same as  
> above.  But if I copy and paste the forms one at a time, then I get a  
> time like the one below for the last form:
>
> user=> (time (vec (swapping a1 100000)))
> "Elapsed time: 12683.523 msecs"
>
> This is easily reproducible on my system Mac and Linux systems.  
> Happens every time.  This is about 200 times longer than all of the  
> previously mentioned timing results. ]
>
> Anyone else see this?  Or even better, know why it happens?
>
> I normally use SLIME within Emacs to interact with a Clojure session,  
> but since I was doing some performance analysis of 1.3.0-alpha1 vs.  
> 1.2.0, and swank-clojure doesn't seem to be there yet for 1.3.0-
> alpha1, I tried using 'lein repl' instead and copying and pasting  
> forms into it from the text editor.  That is when I noticed something  
> funny going on.
>
> I can avoid it now that I know about it, but was curious if it was  
> just me, and if not, how to correct it.
>
> Thanks,
> Andy

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