java random-100到100_java.util.Random使计算速度提高100倍?

我完全不知所措,我不知道发生了什么事...

//import java.util.Random;

public class TestInProgress {

public static void main(String[] args) {

long start, end;

long average;

// Random random= new Random();

for(int j=0; j<5; j++) {

average= 0L;

for(int i=0; i<100; i++) {

start= System.nanoTime();

double temp= fastComputeSigm(0.0);

end= System.nanoTime();

average+= (end - start);

}

average= average/ 100L;

System.out.println("AVERAGE FASTCOMPUTE: "+average);

average= 0L;

for(int i=0; i<100; i++) {

start= System.nanoTime();

double temp= Math.exp(0.0)/(1.0 + Math.exp(0.0));

end= System.nanoTime();

average+= (end - start);

}

average= average / 100L;

System.out.println("AVERAGE SIGMOID: "+average);

}

}

static double fastComputeSigm(double value) {

return 0.0;

}

}

最令人惊讶的是输出:

最快的计算机:98 平均SIGMOID: 38625:最快的计算机:

106平均SIGMOID:65平均快速计算机:299平均SIGMOID:201

平均快速计算机:36平均速度:65平均快速计算机:53

平均SIGMOID:57

看到了吗?我未评论随机(及其导入)

您会期待什么?输出:

最快的计算机:90 平均SIGMOID:324最快的计算机:131

平均SIGMOID:73平均快速计算机:217平均SIGMOID:36

平均快速计算机:53平均速度:12平均快速计算机:53

平均SIGMOID:69

我在日食Oxygen.3a版本(4.7.3a)上尝试了此操作

我正在使用Java 10.0.2

我的电脑装有Intel Core i5-7300HQ

具有这些高速缓存的存储器:L1 256,L2 1024,L3 6M

我在Windows 10上运行

注意:我试图用j <1,2,3,...来使forloop多次,第一个Sigmoid总是有荒谬的时间长度

编辑:尝试使用Windows命令行(javac和java)启动它,结果相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值