I have a complex large multithreaded application to which I am introducing new functionality.
I have added a call to a piece of specialist hardware (via a vendor supplied JNI lib). However before that (very fast) function is called some work is done beforehand to populate the data structure sent to it.
However the GC profile of the application is very choppy/bad and it seems that some of these population steps are being interrupted by GC. This matters because time needs to be kept constant or as constant as possible between the first of these events and the hand off to the hardware resource.
Is there a way to say, "sychronise for GC", these operations so that they won't be held up during stop the world GC pauses?
Using a 64bit 1.7 JDK on RHL5.5
Thanks