Общее правило заключается в том, чтобы держать вашу логику внутри собственного кода и избегать множественных вызовов jni (которые обычно стоят дорого с точки зрения производительности, больше, чем та же логика, реализованная только в Java). Но, как всегда, это сильно зависит от вашего дизайна и имеющихся у вас узких мест (io, процессор, сеть и т. Д.).
Надеюсь, это поможет.