yangtianrui95 / JniPerformance

Compare jni and java performance on the Android platform.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JniPerformance

Compare jni and java performance on the Android platform.

Using dense floating-point calculations to test the performance differences between Jni and pure java, it is found that the computational performance is similar.

This test is one-sided, but the comparison of Jni and Java in the dense computing gap, in fact, Java than C / C + + have more run-time checks, such as "multi-state". These run-time check is the main reason for the performance gap , In normal circumstances C than Java run-time performance of about 70% higher.

使用密集的浮点数计算来测试Jni和原生java之间的性能差别,发现计算性能两者类似.

这个测试是片面的,只是比较Jni和Java在密集运算上的差距,实际上Java比C/C++有更多的运行时检查,比如"多态". 这些运行时检查是造成性能差距的主要原因,在正常情况下C比Java的运行时性能高70%左右.

JniMethod:

JNIEXPORT jdouble JNICALL Java_ytr_jniperformance_JniWrapper_calculationTask
        (JNIEnv *env, jclass clazz, jint loop_count) {
    int i;
    double circle = 1;
    //Floating point operations are time consuming and loop the largest number of integers.
    for (i = 0; i < loop_count; i++) {
        circle *= 3.1415962;
    }
    return circle;
}

Java Method:

 private static double calculationTask(int loop_count) {
        int i;
        double circle = 1;
        //Floating point operations are time consuming and loop the largest number of integers.
        for (i = 0; i < loop_count; i++) {
            circle *= 3.1415962;
        }
        return circle;
    }

Screenshot:

img

About

Compare jni and java performance on the Android platform.


Languages

Language:Java 51.4%Language:Makefile 42.3%Language:C 6.3%