I am not convinced that this test is representative.
If you are not using l but still hinting it's type, you may have extra
code generated in the function body to handle the type hint.

4 milliseconds divided by a million is a very low overhead IMHO.
I would hardly qualify this as being inefficient.

I would expect to see a gain if you had some calls done on the argument to 
qualify how much you save by avoiding reflection.

I did not open the cover of the byte code generated by the compiler however.
It could be an edge case not optimized yet. On the other hand if the argument 
is not
used at all, why bother with such an edge case ?

Luc P.

> On 24/04/13 16:35, Alice wrote:
> > (defn foo [^long l cb] (cb l))
> >
> > (time
> >    (dotimes [n 1000000]
> >      (foo n (fn [l] nil))))
> >
> > (time
> >    (dotimes [n 1000000]
> >      (foo n (fn [^long l] nil))))
> >
> > "Elapsed time: 7.861 msecs"
> > "Elapsed time: 11.770973 msecs"
> >
> >
> > Why is the latter slower?
> >
> You should be getting very similar timings from these 2 versions as the 
> type-hinted arg 'l' is never used anywhere - you're just returning nil...
> 
> Jim
> 
> -- 
> -- 
> 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/groups/opt_out.
> 
> 
> 
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad!

-- 
-- 
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/groups/opt_out.


Reply via email to