If you're not using a parallel garbage collector (which is the case by
default), then generating significant garbage will result in not-
insignificant GC pauses. Allocation itself isn't a synchronous
operation, but the default GC is.
Most java profilers have thread-related tools that allow you to see on
what, when, and for how long threads are blocking. It'd be worth it
to enable parallel GC just to see what happens, but beyond that, it
sounds like some data would help in determining specifically what code
is tripping you up.
If you can post/paste code, that might help, too.
- Chas
On Mar 27, 2010, at 12:13 AM, Lee Spector wrote:
Is it possible that multiple threads all furiously generating list
structure would have some sort of contention for the memory
allocation state?
My losses of multicore utilization seem to be correlated with the
generation of lots of random expressions in concurrent threads. I'd
been worrying about contention for the random states, which I think
I've now made thread local, but now I wonder if the contention might
be in the allocation. Possible? If so, then is there a way around it?
Thanks,
-Lee
--
Lee Spector, Professor of Computer Science
School of Cognitive Science, Hampshire College
893 West Street, Amherst, MA 01002-3359
lspec...@hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438
--
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
To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or
reply to this email with the words "REMOVE ME" as the subject.