豪门暖媳txt微盘:JNI性能测试一—JNI调用C与Java调用java性能比较 - zgjxwl-----传说中晨雨的专栏 - CSDN博客
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 01:40:13
JNI性能测试一—JNI调用C与Java调用java性能比较收藏
PerformanceTest.java
view plaincopy to clipboardprint?
- package com.jni;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- public class PerformanceTest extends Activity {
- static
- {
- try
- {
- System.loadLibrary("PerformanceTest");
- } catch (UnsatisfiedLinkError ule)
- {
- System.err.println("WARNING: Could not load library!");
- }
- }
- private final String PerformanceTestTAG ="PerformanceTest:performanceTestFunc :";
- /* JNI 测试函数 */
- private native void emptyJniFunction();
- /* JAVA测试函数 */
- private void emptyJavaFunction()
- {
- }
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- performanceTestFunc();
- }
- /* 性能测试函数 */
- public void performanceTestFunc()
- {
- /* 测试数量级为100万次 */
- int mLoopCount = 1000000;
- int i = 0;
- int base = 1000000;
- String timeStr_ms; /* 毫秒对应String*/
- /* 精确度为纳秒级 */
- long startTime = System.nanoTime();
- /* JNI 调用 */
- for(i = 0;i <= mLoopCount; ++ i)
- {
- emptyJniFunction();
- }
- long endTime = System.nanoTime();
- timeStr_ms = String.valueOf((endTime-startTime)/base);
- Log.v(PerformanceTestTAG+"In Jni:", timeStr_ms+"ms");
- startTime = System.nanoTime();
- /* JAVA 调用 */
- for(i = 0;i <= mLoopCount; ++ i)
- {
- emptyJavaFunction();
- }
- endTime = System.nanoTime();
- timeStr_ms = String.valueOf((endTime-startTime)/base);
- Log.v(PerformanceTestTAG+"In JAVA:", timeStr_ms+"ms");
- }
- }
com_jni_PerformanceTest.c
view plaincopy to clipboardprint?
- /* DO NOT EDIT THIS FILE - it is machine generated */
- #include
- /* Header for class com_jni_PerformanceTest */
- #ifndef _Included_com_jni_PerformanceTest
- #define _Included_com_jni_PerformanceTest
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Class: com_jni_PerformanceTest
- * Method: emptyJniFunction
- * Signature: ()V
- */
- JNIEXPORT void JNICALL Java_com_jni_PerformanceTest_emptyJniFunction
- (JNIEnv *env, jobject obj)
- {
- }
- JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
- {
- JNIEnv *env;
- int result;
- result = JNI_VERSION_1_4;
- return result;
- }
- #ifdef __cplusplus
- }
- #endif
- #endif
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := PerformanceTest
LOCAL_SRC_FILES := src/com_jni_PerformanceTest.c
include $(BUILD_SHARED_LIBRARY)
如上图所示,通过Jni调用c的空实现函数,调用100万次,用时41747ms,而使用java调用java的空实现函数100万次,用时25378ms。以上测试数量级为100万次,系统android 2.2,测试于android模拟器上,jdk1.6.0_17。
JNI性能测试一—JNI调用C与Java调用java性能比较 - zgjxwl-----传说中晨雨的专栏 - CSDN博客
JNI编程 —— 让C++和Java相互调用
建立Android SDK下的JNI、JAVA应用完整步骤---Android JAVA调用C++代码
jni的几个基本的性能测试分析
android wrapper C调用java api - 示韦BadSmile的日志 - 网易博客
java调用.net webservice1
java调用webservice
java笔记——值调用和引用调用
Java 类之间的调用a
C#调用Java类的方法
JAVA开发基础:理解JNI使用原理
JNA 实现Java调用C动态链接库
JNIExample:java/native相互之间调用的种种情形的例子--比较老的资料
java定时执行 - welkin8888的专栏 - CSDN博客
.net与java 使用自定义对象通过WebService调用
vc程序调用别人的dll报错的原因分析 - cay22的专栏 - CSDN博客
老生常谈之C++和C#之间互相调用 - gangyilovevc的专栏 - CSDN博客
关于java使用jacob.jar调用word的配置问题
点阵字库在JAVA中的实现 - ShaHuShaBoJue的专栏 - CSDN博客
Java版 工作流 实现技术大比拼 - eif6的专栏 - CSDN博客
福利费报销流程1 - DJ(Delphi/JAVA)_fans的专栏 - CSDN博客
各种java序列化工具性能对比
linux下编程学习----- 远程过程调用(rpc) - shake863 - Java...
Java EE5到底有什么系列 – Java Persistence API 1.0( EJB3 Entity Bean) - 微风拂岸的专栏 - CSDN博客