免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux

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

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
发表于 2012-10-29 22:51 |显示全部楼层
回复 37# send_linux

一般了,上午都是一些赞助商做的广告,下午才是干货,分会场比较多,分身乏术啊
   

论坛徽章:
0
发表于 2012-10-30 09:47 |显示全部楼层
强强强~~,太好了,谢谢

论坛徽章:
3
卯兔
日期:2013-08-15 13:17:31处女座
日期:2014-01-10 11:35:23双子座
日期:2014-01-25 02:16:06
发表于 2012-10-30 14:24 |显示全部楼层
看回复,做Web的比较多。我这个用RCP的算不算“另类”呢。自己对RCP上性能的优化,通常是将含有大量数值计算的内容用用C++封装,然后JNI。。。如果迁移到Linux下,还是先编译C++的库,再用JNI调用。所实在的,纯粹Java的代码优化还真不懂。

论坛徽章:
0
发表于 2012-10-30 16:25 |显示全部楼层
都说JVM能调整优化,怎么实现呢?有什么工具能探测系统的吞吐量嘛?JAVA性能优化其实有点难度啊,不知道初学者是不是该飘过?

论坛徽章:
4
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-24 13:05:332015亚冠之西悉尼流浪者
日期:2015-10-09 16:03:47fulanqi
日期:2016-06-17 17:54:25
发表于 2012-10-30 22:14 |显示全部楼层
本帖最后由 hbsycw 于 2012-10-30 22:15 编辑

今天有时间,上CU来继续答题:

3. 如果系统频繁发生Out of Memory异常,该如何分析和解决问题

首先,OutOfMemoryError异常,说明是没有足够可以使用的内存空间了。为了说清这个问题,这里还是要从JAVA的内存模型来讲,JVM在执行程序时,会把所管理的内存划分成:栈(Stack)、堆(Heap)、方法区(Method Area)以及程序计数器(Program Counter Register),根据虚拟机规范,这些区域,除了程序计数器,其它几个区域都是可以报OutOfMemoryError异常的。该如何分析和解决OutOfMemoryError异常呢?首先要根据报错信息来判断是哪个区报错,然后结合内存印象分析工具来定位问题。

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2012-10-31 09:12 |显示全部楼层
hbsycw 发表于 2012-10-30 22:14
今天有时间,上CU来继续答题:

3. 如果系统频繁发生Out of Memory异常,该如何分析和解决问题


感谢分享:)

论坛徽章:
0
发表于 2012-10-31 22:29 |显示全部楼层
在我实际碰到的问题中,从javacore文件中开主要object内存段出现使用为100%的情况,其他几个内存段还没有遇到过,但是怎么确定是那个类或者那些类的造成的,这个有点难,并且对认为是那些有问题的相应类进行压力测试,也不会重现问题,不知道如何确定问题类,大家有什么好的办法能够找到呢?

论坛徽章:
0
发表于 2012-11-01 09:55 |显示全部楼层
我也说一点自己的看法.
程序性能不如意,首先要看是系统整体都比较慢,还是某些地方比较慢,
1\只是某些地方比较慢,那就要通过日志+jstack来看看线程主要停留在什么地方,再检查代码和业务,看是否有可以优化的地方,有需要可以增加日志,来找到系统执行慢的地方.在具体分析是什么原因.如果是数据库比较慢,而业务又不能优化(这个需要细细分析),那就要进行数据库优化了.
2\系统整体比较慢,那就要看系统架构,内存使用,系统io,数据库.关于内存,我基本上只用过jconsole,查看是否是频繁gc,增加内存,调整vm参数等等,这个比较不好把握,通常要尝试很多次.io方面的问题,就要考虑缓存,单独资源服务器等等.如果是承载能力达到上限,那就要考虑负载均衡了
3\数据库常用优化,最初sql优化,尽量使用索引;增加缓存;再就是根据业务逻辑分库分表,还有进行读写分离.

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2012-11-01 10:10 |显示全部楼层
liuyxhello 发表于 2012-11-01 09:55
我也说一点自己的看法.
程序性能不如意,首先要看是系统整体都比较慢,还是某些地方比较慢,
1\只是某些地方 ...


谢谢大家的回复,很高兴看到,CU还有这么多的Java开发者

论坛徽章:
0
发表于 2012-11-01 13:10 |显示全部楼层
hbsycw 发表于 2012-10-30 22:14
今天有时间,上CU来继续答题:

3. 如果系统频繁发生Out of Memory异常,该如何分析和解决问题


恩。有关OOM的可能性有很多种。要根据不同的情况具体处理。最常见的比如堆溢出啦。另外,还能是因为DirectMemery用太多了,或者线程开太多了。具体在书里都有较为详细的介绍。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP