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