On Tuesday, June 18, 2013 9:58:20 AM UTC-7, Michael Klishin wrote:

>
> 2013/6/18 Tim Jones <timoth...@hp.com <javascript:>>
>
>> How do I get to near-java performance?
>
>
> Start by providing a snippet of your code and profiling.
>
>  Great.  Here's the context: iterate through a list of Product, and for 
each Product, get a List<List<String>> which is URL info for that product. 
 Convert each List<String> to a vector and do a little processing on it. 
 Here is the code:

(defn- filter-link 
  "Format lang and cc into the link returned from the product."
  [^List link]
  [(.get link 0) (.get link 1) (.get link 2) (.get link 3)  
   (-> (.get link 4) 
       (URLDecoder/decode "UTF-8") 
       (format (.get link 1) (.get link 2)))])

(defn link-info
  "Retrieve all link info from a product as a lazy-seq of vectors of 
String.  The function
   handles parameter substitution within the URL"
  [^Product p]
  (map filter-link
       (.getAllLinkInfo p @lib {"h_lang" "%1$s" "h_cc" "%2$s"})))


Here's a VisualVM screenshot.  500 products takes ~45s, with 18s spent in 
one call:

<https://lh4.googleusercontent.com/-gLONfrNtJPs/UcDMkxHchuI/AAAAAAAAABU/GXqaevewpqs/s1600/clj-java-perf.png>

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