Hi there,

I'm trying to track down what might be creating seemingly sporadic tiny pauses 
in my application execution. Essentially the system is calling a JNI interface 
with a regular rhythm. Most of the time this is the case, however, occasionally 
the system will pause for a few hundred ms and the messages will then be sent 
late and clumped together. Ordering is preserved, but the timeliness is lost. 
I'm therefore wondering how I track down what causes the pauses in an attempt 
to remove/reduce them. So far I can only think of the following potential 
causes:

* GC kicking in
* Thread creation issues
* JNI communication locks

The first one seems the most sensible, but I've tried monitoring the app's 
execution with VisualVM and YourKit and I struggle to see how the GC might be 
an issue. Perhaps my expertise with these tools may be improved. Secondly, I 
have no idea what I precisely mean by 'thread creation issues' but I do see 
that the system is creating about 30 threads per second. Would this cause 
issues with the kernel that might explain the short pauses? Finally, the last 
thing I can think of is that somehow the way the system manages the JNI 
communication can occasionally block. Again, I'm not really sure what's going 
on here.

Basically I'm looking for help and advice on how I might gain more insight into 
my system's execution so that I might be able to find out how and why the 
pauses take place.

Sam

---
http://sam.aaron.name



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