为什么一个简单的java程序windows机器的效率是linux服务器的两倍?

robinandable 2016-09-07 09:40:06
急!!!!!!!!最近在工作需要在做数据方面的工作,但是java程序部署到linux服务器上面之后运行效率居然比我开发用的windows电脑慢很多,jdk都是使用的jdk1.7版本的。
linux服务器是4U的,64核,128G内存,性能不存在任何问题,windows开发电脑配置是i7,16G内存。本人也写了一个小的循环来测试了一下,代码如下:

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<1000000;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。
求各位大神指点!!!!!!!
...全文
1325 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqyy725 2016-12-19
  • 打赏
  • 举报
回复
linux 要调整核心和频率的,建议你看一看 在Gnome菜单栏的底部面板上点右键 ---> 添加到面板 --> CPU频率范围监视器 , 然后gnome面板上就会出现此小工具,并显示当前的频率, 点左键可出现可调节的频率
烟影随梦 2016-12-12
  • 打赏
  • 举报
回复
这种单线程的因该要看处理器单核速率的吧,和cpu核心以及内存因该没有多大关系
XQDDIN 2016-12-12
  • 打赏
  • 举报
回复
这个也要看电脑配置,linux配置差你windows几条街还用问为什么吗。。。。
  • 打赏
  • 举报
回复
引用 2 楼 robinandable 的回复:
[quote=引用 1 楼 micropentium6 的回复:] 没说jdk版本,你测个屁啊
你自己没仔细看吧,说的清清楚楚,jdk都是1.7的[/quote] 只有oracle出JDK吗?
yong_f 2016-09-07
  • 打赏
  • 举报
回复
这个和CPU的主频有关系,和核多少没有关系;所以开发多核的程序时要考滤用多线程及多进程模式;单线程这种是主频高跑的快;
robinandable 2016-09-07
  • 打赏
  • 举报
回复
引用 1 楼 micropentium6 的回复:
没说jdk版本,你测个屁啊
你自己没仔细看吧,说的清清楚楚,jdk都是1.7的
  • 打赏
  • 举报
回复
没说jdk版本,你测个屁啊

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧