[Assorted-commits] SF.net SVN: assorted:[910] sandbox/trunk/src/java
Brought to you by:
yangzhang
From: <yan...@us...> - 2008-07-29 20:47:01
|
Revision: 910 http://assorted.svn.sourceforge.net/assorted/?rev=910&view=rev Author: yangzhang Date: 2008-07-29 20:47:10 +0000 (Tue, 29 Jul 2008) Log Message: ----------- added jni demo and benchmark Added Paths: ----------- sandbox/trunk/src/java/jni/ sandbox/trunk/src/java/jni/Bench/ sandbox/trunk/src/java/jni/Bench/Bench.cc sandbox/trunk/src/java/jni/Bench/Bench.java sandbox/trunk/src/java/jni/Bench/Makefile sandbox/trunk/src/java/jni/HelloWorld/ sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.cc sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.java sandbox/trunk/src/java/jni/HelloWorld/Makefile Added: sandbox/trunk/src/java/jni/Bench/Bench.cc =================================================================== --- sandbox/trunk/src/java/jni/Bench/Bench.cc (rev 0) +++ sandbox/trunk/src/java/jni/Bench/Bench.cc 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,10 @@ +#include <jni.h> +#include <iostream> +#include "Bench.h" + +using namespace std; + +JNIEXPORT void JNICALL +Java_Bench_foo(JNIEnv *env, jclass cls) +{ +} Added: sandbox/trunk/src/java/jni/Bench/Bench.java =================================================================== --- sandbox/trunk/src/java/jni/Bench/Bench.java (rev 0) +++ sandbox/trunk/src/java/jni/Bench/Bench.java 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,15 @@ +public class Bench { + private static native void foo(); + public static void main(String[] args) { + int count = 1000000; + long start = System.nanoTime(); + for (int i = 0; i < count; i++) + foo(); + long end = System.nanoTime(); + System.out.println(end - start + " ns"); + System.out.println((((double) end - start) / count) + " ns/call"); + } + static { + System.loadLibrary("Bench"); + } +} Added: sandbox/trunk/src/java/jni/Bench/Makefile =================================================================== --- sandbox/trunk/src/java/jni/Bench/Makefile (rev 0) +++ sandbox/trunk/src/java/jni/Bench/Makefile 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,19 @@ +all: libBench.so + java -Djava.library.path=. Bench + +libBench.so: Bench.cc Bench.h + g++ -shared -fPIC \ + -I/usr/lib/jvm/java-6-openjdk/include/ \ + -I/usr/lib/jvm/java-6-openjdk/include/linux \ + -o libBench.so Bench.cc + +Bench.h: Bench.class + javah -jni Bench + +Bench.class: Bench.java + javac Bench.java + +clean: + rm -f libBench.so Bench.h Bench.class + +.PHONY: clean Added: sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.cc =================================================================== --- sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.cc (rev 0) +++ sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.cc 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,12 @@ +#include <jni.h> +#include <iostream> +#include "HelloWorld.h" + +using namespace std; + +JNIEXPORT void JNICALL +Java_HelloWorld_print(JNIEnv *env, jobject obj) +{ + cout << "Hello World!" << endl; + return; +} Added: sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.java =================================================================== --- sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.java (rev 0) +++ sandbox/trunk/src/java/jni/HelloWorld/HelloWorld.java 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,9 @@ +public class HelloWorld { + private native void print(); + public static void main(String[] args) { + new HelloWorld().print(); + } + static { + System.loadLibrary("HelloWorld"); + } +} Added: sandbox/trunk/src/java/jni/HelloWorld/Makefile =================================================================== --- sandbox/trunk/src/java/jni/HelloWorld/Makefile (rev 0) +++ sandbox/trunk/src/java/jni/HelloWorld/Makefile 2008-07-29 20:47:10 UTC (rev 910) @@ -0,0 +1,19 @@ +all: libHelloWorld.so + java -Djava.library.path=. HelloWorld + +libHelloWorld.so: HelloWorld.cc HelloWorld.h + g++ -shared -fPIC \ + -I/usr/lib/jvm/java-6-openjdk/include/ \ + -I/usr/lib/jvm/java-6-openjdk/include/linux \ + -o libHelloWorld.so HelloWorld.cc + +HelloWorld.h: HelloWorld.class + javah -jni HelloWorld + +HelloWorld.class: HelloWorld.java + javac HelloWorld.java + +clean: + rm -f libHelloWorld.so HelloWorld.h HelloWorld.class + +.PHONY: clean This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |