同样的java程序在linux服务器上要比在windows服务器上慢很多,jdk都是1.7版本。
linux服务器是4U,64核,128G,windows服务器是i7,16G。
写了一个小的demo测试了一下:
public static void main(String[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time1=format.format(date);
System.out.println("开始时间:"+time1);
long begin = System.currentTimeMillis();
for(int i=0;i<100000;i++){
for(int j=0;j<100000;j++){
for(int k=0;k<100000;k++){
int a = i+j+k;
}
}
}
long end = System.currentTimeMillis();
Date date1=new Date();
String time2=format.format(date1);
System.out.println("结束时间:"+time2);
System.out.println("运行时间:"+(end-begin)+"ms");
}
在windows机器上运行时间是25s,打成jar包在linux服务器上运行的时间是50s。
windows是 微内核
Linux 是 单内核
我认为你写的这个段代码太吃单核性能,i7的单核性能不是服务器Cpu可以比的,i7核心频率一般在4.0G,志强一般在2.3G,所以这段代码运行相差的时间 25s/50s基本可以对应他们单核频率的4.0G/2.3G。个人见解,请多指教。