由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - java小问题
相关主题
新手请教Java数组问题JAVA 考试题请教
[c++] static function in a class"short" in Java
判断Python程序员水平的一个试题这段Java代码能运行吗?
关于Java一个小程序的结果急问,如何创建wince版的jni library (转载)
比较简单的Java数据输入验证问题What is "number of bits set"?
求教一个Java问题 IllegalMonitorStateExceptionjava library 的文件扩展名是什么?
java 8 也可以fp啊终于理解为什么java比C++牛x了
js: 怎么来监听某个function被call的次数?网上信用卡交易模块大家都怎么写(java 的)
相关话题的讨论汇总
话题: clibrary话题: 2000000话题: java
进入Programming版参与讨论
1 (共1页)
N***m
发帖数: 4460
1
正在学习JNA library,测试了一下
计算sum_i sin(i)的值,i=0,2000000。
分别调用c library和java自己的数学库。
结果如下:
using c function
result = 0.5520835778318177 | elapsed time = 5.188 seconds
using java function
result = 0.5520835778317068 | elapsed time = 0.718 seconds
为什么会差这么多?那大家要是平时需要快速计算结果的情况下,如何
把c++程序和java结合?
===========================================================
public class A {


public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary)
Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c
"),
CLibrary.class);

double sin(double x);
}

public static void main(String[] args) {
double t= 0 ;
long start = System.currentTimeMillis();
for(int i=0;i<2000000;i++) {
t += CLibrary.INSTANCE.sin(i);
}
long elapsedTimeMillis = System.currentTimeMillis()-start;
float elapsedTimeSec = elapsedTimeMillis/1000F;
System.out.println("using c function");
System.out.println(t+" | "+ elapsedTimeSec);



t = 0;
start = System.currentTimeMillis();
for(int i=0;i<2000000;i++) {
t += java.lang.Math.sin(i);
}
elapsedTimeMillis = System.currentTimeMillis()-start;
elapsedTimeSec = elapsedTimeMillis/1000F;
System.out.println("using java function");
System.out.println(t+" | "+ elapsedTimeSec);

}


}
b*******s
发帖数: 5216
2
你通过jvm调用了2万次native code
可以把这2万次调用节约成1次再试试看?
N***m
发帖数: 4460
3
大侠,能不能说得再明白一点,怎么具体节约成一次?

【在 b*******s 的大作中提到】
: 你通过jvm调用了2万次native code
: 可以把这2万次调用节约成1次再试试看?

l******e
发帖数: 12192
4
jna本来就有overhead

【在 N***m 的大作中提到】
: 大侠,能不能说得再明白一点,怎么具体节约成一次?
N***m
发帖数: 4460
5
只是没想到差别这么大:)

【在 l******e 的大作中提到】
: jna本来就有overhead
1 (共1页)
进入Programming版参与讨论
相关主题
网上信用卡交易模块大家都怎么写(java 的)比较简单的Java数据输入验证问题
How to use the online code source? ---- A general question求教一个Java问题 IllegalMonitorStateException
Any one knows 'Q Programming Language'?java 8 也可以fp啊
c++ 两个库接口冲突js: 怎么来监听某个function被call的次数?
新手请教Java数组问题JAVA 考试题请教
[c++] static function in a class"short" in Java
判断Python程序员水平的一个试题这段Java代码能运行吗?
关于Java一个小程序的结果急问,如何创建wince版的jni library (转载)
相关话题的讨论汇总
话题: clibrary话题: 2000000话题: java