Jotta Javalla voisi mitata prosessiaikaa, tarvitaan siihen järjestelmätasoisen
clock() -funktion kutsumista. Käytämme siis JNI:tä. Tässä lyhyt esimerkki,
miten natiivifunktioita voi kutsua Javalla. Lataa seuraavat kolme
tiedostoa ja noudata alla olevia ohjeita:
JNIClockExample.java:
/** * Using native clock() for process time measurement using JNI * * (c) 2003 Juha TukkinenJavaNativeClock.java:*/ public class JNIClockExample { public static void main(String[] args) { JavaNativeClock jnc = new JavaNativeClock(); int begin = jnc.clock(); int b = 5; for(int i = 0; i < 100000000; i++) { b *= i % 32000; } int end = jnc.clock(); System.out.println(end-begin); } }
class JavaNativeClock {
public native int clock();
static {
System.loadLibrary("javanativeclock");
}
}
JavaNativeClock.cpp:
#include "JavaNativeClock.h"
#include <jni.h>
#include <time.h>
JNIEXPORT jint JNICALL Java_JavaNativeClock_clock(JNIEnv *, jobject) {
return clock();
}