免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

Java程序性能优化 ,您从何入手?(获奖名单已公布-2012-11-22) [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-10-25 14:57 |只看该作者
一个普通的循环代码段可能如下:
int[] array=new int[9999999];
for(int i=0;i<9999999;i++){
        array[i]=i;                                        //赋值操作
}

展开循环后:
int[] array=new int[9999999];
for(int i=0;i<9999999;i+=3){                //展开循环,一个循环体完成原来3个循环的工作
        array[i]=i;
        array[i+1]=i+1;
        array[i+2]=i+2;
}
请大神说说哪个更好,优缺点都是什么呢?我觉得真正的不是要从大角度考虑性能,而是从每一段小代码来看。

论坛徽章:
0
22 [报告]
发表于 2012-10-25 15:06 |只看该作者

了解这本书的PPT内容,可以拿起手机,扫出二维码

论坛徽章:
0
23 [报告]
发表于 2012-10-25 17:36 |只看该作者
回复 21# lipiao123


    在本书里有这个例子,并进行了讨论。首先,书中给出的定义是:在极端情况下进行的优化方法。也就是说,你真的很重视这段代码的速度,并且CPU确实很慢。那么这种方式是有效果的。
   如果不是,那么这种展开会破坏代码可读性,是不可取的。而且,在现在CPU已经很强大的情况下,这种展开循环是没有意义的。但是,如果在嵌入式开发中,还是有一定的价值,因为前者要进行比较的次数远远大于后者。

论坛徽章:
0
24 [报告]
发表于 2012-10-25 18:51 |只看该作者
回复 23# billykinggym


    在补充一下。在JDK的较新的版本中,据说在JVM层会进行一次循环展开的。因此,直接展开这种循环,在高配置计算机已经新的JVM上没有太大意义。但对于J2ME或者Android等系统,还是很有用的。

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
25 [报告]
发表于 2012-10-26 13:48 |只看该作者
Java初学者,路过...

论坛徽章:
0
26 [报告]
发表于 2012-10-26 19:49 |只看该作者
没想到参与的人还是挺多的,我想说的还是在出现性能问题的情况下如何找到产生性能的关键点;
本人使用java主要是做web应用,谈一下本人一点经验:在出现性能的情况下主要是分析jvm垃圾详细回收的日志,确定在什么时间点开始频繁的垃圾回收操作的时候,根据javacore文件确定正在运行的线程,来确定可能是哪个类的问题,然后再去逐个分析。
不知道大家如何查找产生性能的关键点,希望这个是抛砖引玉。

论坛徽章:
0
27 [报告]
发表于 2012-10-27 13:46 |只看该作者
抛除AP服务器硬件,中间件本身的设置问题以外,我觉得可以从以下几个方面改善和调整Java程序性能
1 程序本身和外部资源访问代码优化
    具体来讲,有文件读写,DB查询更新,作为调整的原则是,尽量避免频繁地发生外部资源访问,在一次访问中尽可能多做些处理.

  2 多线程程序的并发控制是否合理,在保证底线的资源竞争前提下,最大限地提高处理的并行效率

  3 时间复杂度和空间复杂度的平衡,有时候需要牺牲一些空间复杂度来提高处理效率

  4 对web程序来讲,session信息保存十分有冗余?保存太多信息不利于处理效率的提高。

论坛徽章:
0
28 [报告]
发表于 2012-10-27 17:12 |只看该作者
真是好东西呀

论坛徽章:
0
29 [报告]
发表于 2012-10-28 02:50 |只看该作者
send_linux 发表于 2012-10-19 22:20
感谢参与哦,原来我们的java版还是有不少用户的啊,呵呵


那肯定的么,Android多火啊。Java肯定死不了~~~~~~~~~

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
30 [报告]
发表于 2012-10-28 08:26 |只看该作者
Java的性能不如人意
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP