Sweet, thanks!  I forgot that you could extract sub-arrays like that  
in Java.

Maybe aset-* could be changed to incorporate this trick?

-Jason

On Feb 23, 2009, at 6:22 PM, David Nolen wrote:

> (time (let [arr  (make-array Float/TYPE 1 1)]
>       (dotimes [_ 100000]
>         (let [#^floats sub-arr (aget arr 0)]
>           (aset-float sub-arr 0 0.0)))))
>
> Seems to work? Looks an eligible candidate for a macro.
>
> On Mon, Feb 23, 2009 at 9:04 PM, Jason Wolfe <jawo...@berkeley.edu>  
> wrote:
>
> I'm trying to call some third-party code that expects a two-
> dimensional double array, and I can't figure out how to create and
> fill this in Clojure without a huge perf hit (which profiling shows to
> be coming from reflection):
>
> user> (time (let [arr  (make-array Double/TYPE 1)] (dotimes [_ 100000]
> (aset-double arr 0 0.0))))
> "Elapsed time: 28.408 msecs"
> nil
>
> user> (time (let [arr  (make-array Double/TYPE 1 1)] (dotimes [_
> 100000] (aset-double arr 0 0 0.0))))
> "Elapsed time: 3634.136 msecs"
> nil
>
> I've tried adding type hints like #^"[[D" to no avail.  What am I
> missing here?
>
> BTW, I'm still on the pre-lazy SVN, waiting for the dust to settle.
>
> Thanks,
> Jason
>
>
>
>
> >


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