免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22032 | 回复: 55
打印 上一主题 下一主题

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

论坛徽章:
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
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-19 15:53 |只看该作者 |倒序浏览
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4055242-1-1.html

为什么程序越跑越慢,究竟哪里出问题?为什么系统频频崩溃,内存溢出?该如何处理?
作为一名Java工程师,我想你或多或少会遇到这些令人头痛的问题。在遇到这些问题时,你是否束手无策?还是处理得游刃有余?
就比如说Java的性能调优,什么是性能调优?调优的规则有哪些?
不论如何,我都希望你能参与到这个讨论中。发表自己的看法和见解,向大家分享自己宝贵的经验。一起学习,共同进步。


讨论问题:
1.Java中字符串分割的性能讨论
2. 如果程序性能不如人意,如何找到代码中的性能瓶颈
3. 如果系统频繁发生Out of Memory异常,该如何分析和解决问题
4、您在Java程序开发和调优中用到的一些有用的技巧

邀请嘉宾:

Java版版主:kakasi,CU资深Java版版主,资深java架构师

图书作者,葛一鸣,CU论坛ID为billykinggym,毕业于浙江工业大学,获得了计算机软件与理论专业硕士学位。取得了国家认证系统分析师职称、OCP(Oracle数据库认证专家)。现就职于UT斯达康通讯有限公司,从事Java软件开发。有多年的软件开发经验,参与开发过多个软件项目。熟悉Java、PHP、MySQL、Oracle等开发语言和数据库,对Java软件开发、性能优化、分布式软件有着浓厚的兴趣和深入的研究。在校期间曾经发表过多篇技术论文。


活动时间:2012.10.20-2012.11.10

活动要求:
1、 要言之有物,不能低于20个字
2、 本次话题主要关注Java、JVM和Java开发相关的工具讨论,其他问题可能不做重点
         
讨论有奖:
活动结束后,我们会评选出五位积极参与话题讨论的网友奖励《Java程序性能优化》图书一本,对其他积极参与讨论的网友(回帖有参考价值)我们将奖励积分20分。

奖品简介:
Java程序性能优化

作  者: 葛一鸣 等 著
出 版 社: 清华大学出版社
ISBN:9787302296256
出版时间:2012-09-01

图书简介:
java是目前应用最为广泛的软件开发平台,学习针对java程序的优化方法有重要的现实意义。《java程序性能优化——让你的java程序更快、更稳定》以java性能调优为主线,系统地阐述了与java性能优化相关的知识与技巧。
   《java程序性能优化——让你的java程序更快、更稳定》共6章,先后从软件设计、软件编码、jvm调优以及程序故障排除等方面介绍针对java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项;第2章从设计层面介绍与性能相关的设计模式、组件。第3章从代码层面介绍如何编写高性能的java程序;第4章介绍并行开发和如何通过多线程提高系统性能;第5章立足于jvm虚拟机层面,介绍如何通过设置合理的jvm参数提升java程序的性能;第6章为工具篇,介绍获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。
   《java程序性能优化——让你的java程序更快、更稳定》适合所有java程序员、软件设计师、架构师以及软件开发爱好者,对于有一定经验的java工程师,本书更能帮助突破技术瓶颈,深入java内核开发!

论坛徽章:
0
2 [报告]
发表于 2012-10-19 21:29 |只看该作者
程序调优绝非易事,尤其是在操作系统中监控到cpu使用率不断上升直至达到100%,而在应用日志中却找到不到任何可疑的交易或者线程,面临庞大的代码,找到具体的问题那就更加难上加难了;
虽然通过avacore文件能够分析到某些类文件和正在运行的线程,可这些线程之间的互相等待或者阻塞需要耐心的去梳理。

论坛徽章:
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
3 [报告]
发表于 2012-10-19 22:20 |只看该作者
蓝色蜻蜓 发表于 2012-10-19 21:29
程序调优绝非易事,尤其是在操作系统中监控到cpu使用率不断上升直至达到100%,而在应用日志中却找到不到任何 ...


感谢参与哦,原来我们的java版还是有不少用户的啊,呵呵

论坛徽章:
0
4 [报告]
发表于 2012-10-19 23:39 |只看该作者
蓝色蜻蜓 发表于 2012-10-19 21:29
程序调优绝非易事,尤其是在操作系统中监控到cpu使用率不断上升直至达到100%,而在应用日志中却找到不到任何 ...


是的。梳理线程以及锁之间的关系,确实很烦人。Thread Dump里信息繁多。很难分析。不过也有些工具可以使用,减轻分析的工作量。比如Thread Dump Analyer(书中第6章有简单的介绍)这些分析dump文件的工具。

论坛徽章:
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
5 [报告]
发表于 2012-10-22 16:30 |只看该作者
终于有个特感兴趣的话题可以讨论了,哈哈,积极参与~

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
6 [报告]
发表于 2012-10-22 16:36 |只看该作者
本帖最后由 action08 于 2012-10-22 17:52 编辑

恩,欢迎各位大牛分享冲在技术一线经验心得

论坛徽章:
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
7 [报告]
发表于 2012-10-22 17:58 |只看该作者
本帖最后由 hbsycw 于 2012-10-22 18:00 编辑

刚才开会去了,现在先来回答第一个问题:

1.Java中字符串分割的性能讨论

首先,JDK提供的类库里面,对字符串分割可以有三种方法,String.split(); String.SubString() 以及 java.util.StringTokenizer(); 读下源码应该知道其性能应该大致是:SubString() > StringTokenizer() > split()

论坛徽章:
0
8 [报告]
发表于 2012-10-22 18:11 |只看该作者
hbsycw 发表于 2012-10-22 17:58
刚才开会去了,现在先来回答第一个问题:

1.Java中字符串分割的性能讨论
首先,JDK提供的类库里面,对字符串分割可以有三种方法,String.split(); String.SubString() 以及 java.util.StringTokenizer(); 读下源码应该知道其性能应该大致是:SubString() > StringTokenizer() > split()


是的,但是要注意subString()这个东东,会导致内存溢出哦。如果你不即使释放资源的话。书里面第3章有详细的介绍。所以处理大字符串的时候,最好要注意点。split()虽然慢点,但它可以支持正则表达式,用起来还是有点方便的。最快的方法就是自己实现啦,用indexOf()之类的函数自己做,性能最好。但是比较麻烦~~

论坛徽章:
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
9 [报告]
发表于 2012-10-22 19:16 |只看该作者
回复 8# billykinggym

用substring(),当然要用indexOf();就看你怎么看substring() 了,其实这是Java字符串分割的基本方法,无论是StringTokenizer() 还是Split(), 其内部实现都是substring()。至于,内存泄漏,这个我们可以专题讨论,哈哈~


   

论坛徽章:
0
10 [报告]
发表于 2012-10-22 19:24 |只看该作者
回复 9# hbsycw


    嗯,是的。终于有人回复我了。激动呀~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP