Можете ли вы воспроизвести время, когда вы измеряете время обработки в программе, то есть что-то вроде следующего:
long start = System.currentTimeMillis();
/* Your code */
[...]
long time = System.currentTimeMillis() - start;
System.out.println("Measurement: " + time);
Кроме того, что вы подразумеваете под "это быстро, когда Java не занимает 97% процессорного времени"? Почему Java занимает 97% на первом месте? Работает ли несколько потоков? Ваши вычисления коротки или продолжительны?