主题帖子积分平民守护
升级积分:21, 积分 17, 距离下一级还需 4 积分
主题帖子积分
升级积分:831, 积分 790, 距离下一级还需 41 积分
人气2636 分
真的假的啊
主题帖子积分
升级积分:615, 积分 557, 距离下一级还需 58 积分
人气3571 分
插个7;777777
主题帖子积分黑.莫溪
人气9435 分
浪费时间,懒得去弄
主题帖子积分玩了8年才3转。
升级积分:380, 积分 367, 距离下一级还需 13 积分
人气486 分
随便钩吧。。。
主题帖子积分
升级积分:137, 积分 115, 距离下一级还需 22 积分
内容掉鱼有什么用?
主题帖子积分
升级积分:168, 积分 167, 距离下一级还需 1 积分
人气289 分
向来大快直
主题帖子积分
升级积分:11, 积分 1, 距离下一级还需 10 积分
楼主的功略是梦幻的- -!!
OS是贪吃的大嘴熊问你要鱼给的。 期间还会出现宝箱和强盗 钓到和赢了都会有随机奖励。
主题帖子积分
升级积分:11, 积分 1, 距离下一级还需 10 积分
基本上类型都一样看着这玩意直接钓吧。 关键是看第4句。 1级鱼都是直 2级的倾斜 。
主题帖子积分
升级积分:84, 积分 76, 距离下一级还需 8 积分
人气227 分
主题帖子积分人善人欺天不欺 人恶人怕天不怕
人气1459 分
这是梦幻的攻略
主题帖子积分
升级积分:433, 积分 399, 距离下一级还需 34 积分
人气250 分
和梦幻是差不多的,问题是钓上鱼有毛用,就一个龙虾有一点用处,但能钓几个呢
解除论坛号永久禁言1次(个别情况除外,例如发布***广告、违法、反动言论等)
大话几率排行榜勋章
Powered by新老截图:盘点一些被多人称其壮观的大话场面
在你的印象中,你见过大话里最壮观的场面是什么?不知在下列盘点中是否有那么几张与你的印象相符呢?
大闹结束那升级的场面
http://img5./photo/-15/600x450_BPJOQR6E3QVL0031.jpg
http://img5./photo/-15/t_BPJOQR6E3QVL0031.jpg
试玩删档前那疯狂告别的场面
http://img3./photo/-15/600x450_BPJOQU2I3QVL0031.jpg
http://img2./photo/-15/t_BPJOQU2I3QVL0031.jpg
土豪结婚乱扔钱的场面
http://img3./photo/-15/600x450_BPJOR0K83QVL0031.jpg
http://img4./photo/-15/t_BPJOR0K83QVL0031.jpg
长安集市那被摊位围的水泄不通的场面
http://img3./photo/-15/600x450_BPJOR4353QVL0031.jpg
http://img3./photo/-15/t_BPJOR4353QVL0031.jpg
还有新区铁匠门口卖矿石的场面
http://img3./photo/-15/600x450_BPJOR5HT3QVL0031.jpg
http://img2./photo/-15/t_BPJOR5HT3QVL0031.jpg
曾经免费药吃的不停的场面
http://img3./photo/-15/600x450_BPJOR8BN3QVL0031.jpg
http://img6./photo/-15/t_BPJOR8BN3QVL0031.jpg
天涯相随类似赶会
http://img3./photo/-15/600x450_BPJORBSQ3QVL0031.jpg
http://img3./photo/-15/t_BPJORBSQ3QVL0031.jpg
之前的长安东那啥,你懂的
http://img6./photo/-15/600x450_BPJORE5S3QVL0031.jpg
http://img6./photo/-15/t_BPJORE5S3QVL0031.jpg
2015年的六一活动
http://img6./photo/-15/600x450_BPJORH6U3QVL0031.jpg
http://img3./photo/-15/t_BPJORH6U3QVL0031.jpg
圣兽园,密集恐惧症
http://img5./photo/-15/600x450_BPJORK9I3QVL0031.jpg
http://img4./photo/-15/t_BPJORK9I3QVL0031.jpg
这一般见到的情况很少,你看不见我,你看不见我
http://img3./photo/-15/600x450_BPJORLJ83QVL0031.jpg
http://img3./photo/-15/t_BPJORLJ83QVL0031.jpg
土豪发钱的场面
http://img4./photo/-15/600x450_BPJORNRC3QVL0031.jpg
http://img3./photo/-15/t_BPJORNRC3QVL0031.jpg
老帮战卡的不见的守护
http://img2./photo/-15/600x450_BPJORPJ33QVL0031.jpg
http://img5./photo/-15/t_BPJORPJ33QVL0031.jpg
老长安东地图厮杀
http://img6./photo/-15/600x450_BPJORR6Q3QVL0031.jpg
http://img4./photo/-15/t_BPJORR6Q3QVL0031.jpg
之前帮战结束很多人在帮派门口卖神兽丹
http://img3./photo/-15/600x450_BPJORST23QVL0031.jpg
http://img3./photo/-15/t_BPJORST23QVL0031.jpg
图集已浏览完毕重新浏览
(本文来源:《大话西游2》官网
网易公司版权所有扫一扫下载手机客户端
扫描我,关注团购信息,享更多优惠
||网络安全
| | | | | | | | | | | | | | | |
||电子电工
汽车交通| | | | | | | | | |
||投资理财
| | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
||外语考试
| | | | | | | | |
| 视频教程|
大话Java性能优化
轻松道破软件性能调优方法论和具体实现路径,全面细致,一本书搞定性能优化
定价:¥89.00
校园优惠价:¥75.65 (85折)
促销活动:
商品已成功飞到您的手机啦!快登录手机站看看吧!
下载客户端
> 微信关注“互动出版网”,便捷查询订单,更多惊喜天天有
ISBN:6上架时间:出版日期:2016 年4月开本:16开页码:549版次:1-1
所属分类:
1、系统介绍系统调优的解决思路和技术实现
2、结合大家最为熟知的12306、电商等案例
3、架构、设计、开发、算法等多层次多角度思路和策略
4、涉及内存、IO等各种问题,提供丰富的经验参考
5、语言通俗易懂,引人入胜
本书主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具体包括:性能优化策略、程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识、其他相关优化知识等。
通读本书后,读者可以深入了解Java性能调优的许多主题及相关的综合性知识。读者也可以把本书作为参考,对于感兴趣的主题,直接跳到相应章节寻找***。
总的来说,性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。
12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专家作者。__eol__
一名IT技术狂热爱好者,一名顽强到底的工程师。我推崇技术创新、思维创新,对于新技术非常的热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。__eol__
欢迎添加作者微信“michael_tec”,共同探讨IT技术话题。__eol__
第1章 性能调优策略概述 1
1.1 为什么需要调优 1
1.2 性能优化的参考因素 5
1.2.1 传统计算机体系的分歧 5
1.2.2 导致系统瓶颈的计算资源 7
1.2.3 程序性能衡量指标 8
1.2.4 性能优化目标 9
1.2.5 性能优化策略 10
1.3 性能调优分类方法 11
1.3.1 业务方面 12
1.3.2 基础技术方面 12
1.3.3 组件方面 17
1.3.4 架构方面 19
1.3.5 层次方面 20
1.4 本章小结 21
第2章 优化前的准备知识 22
2.1 服务器知识 23
2.1.1 内存 23
2.1.2 GPU/CPU 44
2.1.3 硬盘 49
12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专家作者。一名IT技术狂热爱好者,一名顽强到底的工程师。我推崇技术创新、思维创新,对于新技术非常的热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。欢迎添加作者微信“michael_tec”,共同探讨IT技术话题。
7岁那年,当我合上《上下五千年》一套三册书籍时,我对自己说,我想当个作家。这一晃27年了,等待了27年,我的第一本书《大话Java性能优化》即将面世了。我是多么的忐忑、惊喜,就像第一次面对我的女儿“小顽子”,给她取这个小名,希望她顽强到底,因为我相信,你若顽强到底,一切皆有可能。
从15岁拥有自己第一台电脑算起,已经有接近20年的计算机学习时间,加上11年的工作经历,我对于工作,对于工程师这个职业,有一些自己的感悟。我认为,职业素养非常重要。
1929年,在汪精卫的支持下,余云岫等人提出了全面废除中医、禁止中医的提案,并很快获得初审通过。在这样的局面下,全国各地中医师多次到南京请愿,虽有孙科等人的支持,但反响不大。相持阶段,无独有偶,汪精卫的岳母身患痢疾,西医师医治无效,京城四大名医之一的施今墨先生毅然赴汪府。施今墨凭脉,每言必中,使汪精卫的岳母心服口服,频频点头称是。处方时施今墨说:“安心服药,一诊可愈,不必复诊。”病危至此,一诊可愈?众人皆疑。据此处方仅服数剂,果如施今墨所言。汪精卫不得不服中医,最终撤回提案。施老先生医德高尚,死后遗体都***出来供科学研究,绝不是阿谀奉承之人,他赴汪府,完全是因为对中医生这个职业的尊重,为了让人知道中医的深奥。
佛教五戒之一的不妄语,要求我们不欺骗他人、不在不清楚实际情况的时候胡乱说话,放到职场,也可以加上信息安全的要求。
《越绝书》载文种述九术时说:“故曰九者勿患,戒口勿传,以取天下不难,况于吴乎?”文种希望勾践秘而不宣,以免人多口杂,泄露机密。每个人都有自己的岗位、职责,我们要做的是做好自己的事情,不对不属于自己工作范围内的事情评价、传播,不在背后说同事的坏话。作为一名技术人员,如果不能做到戒口、静心、专心,那我觉得你应该尽早转行,你不适合,也绝不会成为一名技术大拿。
一位职业的工作者,他身上有一种称为气场的东西存在。人的气场是看不见的,但这种力量是巨大的,就像万有引力一样,我们每个人身上的这种气场无时无刻不在影响你的人生。这种气场的行程与你的观念、信仰、环境、朋友、呼吸、事物、欲望、静息与睡眠相关。一个人的气质很好,外表精神、有修养、有道德,这个人的气场就好,就会吸引好的事,吸引好的运气。每个人都会遇到各种各样的苦难,但是我坚信,你若顽强到底,一切皆有可能。
看不见的教养很难。在乌合之众中谁能保持优雅和教养?在群体无意识中谁能保持清醒和判断?更难的是那些“慎独”的教养。日本有一种文化,叫作“不给别人添麻烦”的文化,我们每个人在做事之前都应该考虑是否自己的行为会给别人造成麻烦。教养不是道德规范,也不是小学生行为准则,其实也并不跟文化程度、社会发展、经济水平挂钩,它更是一种体谅,体谅别人的不容易,体谅别人的处境和习惯。对于教养,我个人的理解是,谦逊是一种教养,自尊更是。
尼克·胡哲说过,人们经常埋怨什么也做不来,但如果我们只记挂着想拥有或欠缺的东西,而不去珍惜所拥有的,那根本改变不了问题!真正改变命运的,并不是我们的机遇,而是我们的态度。
一个人的心态很是重要,心量小的人,芝麻大小的事情也能在心里翻江倒海。心量大的人,即使在危机面前也能镇静自若。同样一件事情,掀起的波澜大小却因人而异。有一句话很好,用于技术人员我觉得尤其合适,“想要成为一棵大树,就不要去和草争”。
一个人的成就,不得以金钱衡量,而是一生中,你善待过多少人,有多少人怀念你。成功并非单指事业,无论是爱好或职业上的成功都只是成就。成功应该是多元化的,如人的一生包含了很多追求一样,而非单一指向。然后,无论你多有成就,真正的成功,就是陪伴家人。所有的情感都是需要陪伴的,这些陪伴成为一个个美好的回忆,这些都是整个家庭最宝贵、最重要的财富,这些远远超越物质的重要性。在中国,因为价值观相对比较单一,社会显得很浮躁、很物质,所以大多以物质的追求为主,越多越好,内心也想过美好的生活。但当你的心完全趋向金钱的时候,很多美好的东西就会自动屏蔽了,不会出现在生活中。别让忙碌空白了回忆。
此外,作为一名技术人员,我觉得,职业生涯中可能很多次需要面对工作的变换、角色的变化,有很多知识需要学习,所以,我们应该把“归零”当成一种生活的新常态。
我觉得有一句话总结得特别好,“能干工作、干好工作是职场生存的基本保障”。
荀子是儒家八派中一派的创始人,其思想学说以儒家为本,兼采道、法、名、墨诸家之长。荀子在他的著作《劝学》一文中这样写道,“君子曰:学不可以已。青,取之于蓝,而青于蓝;冰,水为之,而寒于水。”这段文字大体表达了学习是不可以停止的,君子广泛学习并且每天反省自己,就会明白道理,行为上也不会有什么过错。
全球成功的科技型企业,无论是微软的比尔·盖茨,还是苹果的乔布斯,Facebook的扎克伯格,无一不是技术专家,创新型企业必须由这样的企业家带队,懂技术,就会站在前沿。对于大型科技企业而言,光懂技术不够,还要懂市场。
诸葛亮在给他的儿子写的著名的《诫子书》中指出,宁静才能够修养身心,静思反省。不能够静下来,则不可以有效地计划未来,而且学习的首要条件,就是有宁静的环境。审慎理财,量入为出,不但可以摆脱负债的困扰,更可以过着简朴的生活,不会成为物质的奴隶。要计划人生,不要事事讲求名利,才能够了解自己的志向,要静下来,才能够细心计划将来。学习需要专注,平静心境才能事半功倍。学习的过程中,决心和毅力非常重要,因为缺乏了意志力,就会半途而废。拖延就不能够快速地掌握要点。时光飞逝,意志力也会随着时间消磨。
最大的思想紊乱是相信人们想要相信的事情。
——路易斯·巴斯德(Louis Pasteuer)
Michael周是个具有丰富程序经历的架构师和项目管理者,他从国内作坊式的软件开发公司起步,经历了著名的咨询公司凯捷的欧洲工作洗礼,后来于美国花旗软件担任高级软件技术总监,平时常常思考和总结21世纪以来我国软件开发者,特别是Java开发工程师的困惑。
我们通常情况下,一开始可以有条不紊地进行软件需求定义和分析,随着上线时间的不断追近,面对客户的咄咄逼人的需求修改和即刻变更需求上线压力,程序员作为弱势群体,往往会考虑时间优先原则,很难守住按部就班的开发计划和开发方式,从而导致出现了软件质量的大幅度下降。软件一定存在修改的余地,但是程序员们通常不相信自己的系统存在诸多问题,尤其是感觉自己已经做得相当完美。系统调优在软件的后续改进和重构中占有很大的地位,能够弥补前述的不足,本书以通俗的语言和引人入胜的故事,重点讲述软件性能调优的方法论和具体实现路径,读者可以根据自己的实际情况进行参照比对,就像进了兵器库挑选合适自己的顺手武器。
程序凑合着上线是一回事,而能够优美地运行在压力下往往很不容易。本书对于所有有志于进行软件高级管理的人员而言,具有非常重要的意义。
海适云承CEO兼首席架构师沈英桓(Sam Shen)
8.2.2.1一般性软件项目优化案例假设我们有这么一个项目,外部系统D通过系统对外提供的REST API接口从系统内部获取信息,从中提取出有效的信息,并通过JDBC存储到某数据库系统S中,以便供系统其他部分使用,上述操作的执行频率为每天一次,一般在午夜当系统空闲时定时执行。为了实现高可用性(High Availability),外部系统D部署在两台服务器上,因此需要分别从这两台服务器上获取信息并将信息插入数据库中,有效信息的条数达到了上千条,数据库插入操作次数则为有效信息条数的两倍。系统架构图如图8-1所示。 图8-1系统架构图为了快速地实现预期效果,在最初的实现中优先考虑了功能的实现,而未考虑系统性能和代码可读性等。系统大致有以下的实现。(1)REST API获取信息、数据库操作可能抛出的异常信息都被记录到日志文件中,作为调试用。(2)共有5次数据库连接操作,包括第一次清空数据库表,针对两个外部系统D各有两次数据库插入操作,这5个连接都是独立的,用完之后即释放。(3)所有的数据库插入语句都是使用java.sql.Statement类生成的。(4)所有的数据库插入语句,都是单条执行的,即生成一条执行一条。(5)整个过程都是在单个线程中执行的,包括数据库表清空操作,数据库插入操作,释放数据库连接。(6)数据库插入操作的JDBC代码散布在代码中。虽然这个版本的系统可以正常运行,达到了预期的效果,但是效率很低,从通过 REST API获取信息,到解析并提取有效信息,再到数据库插入操作,总共耗时100秒左右。而预期的时间应该在一分钟以内,这显然是不符合要求的。开始分析整个过程有哪些耗时操作,以及如何提升效率,缩短程序执行的时间。通过REST API获取信息,因为是使用外部系统提供的API,所以无法在此处提升效率;取得信息之后解析出有效部分,因为是对特定格式的信息进行解析,所以也无效率提升的空间。综上所述,效率可以大幅度提升的空间在数据库操作部分以及程序控制部分。针对日志的优化因为从两台服务器的外部系统D上获取到的信息是相同的,所以数据库插入操作会抛出异常,异常信息类似于“Attempt to insert duplicate record”,这样的异常信息跟有效信息的条数相等,有上千条。这种情况是能预料到的,所以可以考虑关闭日志记录,或者不关闭日志记录而是更改日志输出级别,只记录严重级别(severe level)的错误信息,并将此类操作的日志级别调整为警告级别(warning level),这样就不会记录以上异常信息了。本项目使用的是 Java 自带的日志记录类,以下配置文件将日志输出级别设置为严重级别。通过上述的优化之后,性能有了大幅度的提升,从原来的100秒左右降到了50秒左右。为什么仅仅不记录日志就能有如此大幅度的性能提升呢?查阅资料,发现已经有人做了相关的研究与实验。经常听到Java程序比C/C++程序慢的言论,但是运行速度慢的真正原因是什么,估计很多人并不清楚。对于CPU密集型的程序(即程序中包含大量计算),Java程序可以达到C/C++程序同等级别的速度,但是对于I/O密集型的程序(即程序中包含大量I/O操作),Java程序的速度就远远慢于C/C++程序了,很大程度上是因为C/C++程序能直接访问底层的存储设备。因此,不记录日志而得到大幅度性能提升的原因是,Java程序的I/O操作较慢,是一个很耗时的操作。针对数据库连接的优化假设程序***有若干次数据库连接操作,每次都需重新建立数据库连接,数据库插入操作完成之后又立即释放了,数据库连接没有被复用。为了做到共享数据库连接,可以通过单例模式 (Singleton Pattern)获得一个相同的数据库连接,每次数据库连接操作都共享这个数据库连接。这里没有使用数据库连接池(Database Connection Pool)是因为在程序只有少量的数据库连接操作,只有在大量并发数据库连接的时候才需要连接池。通过上述的优化之后,性能有了小幅度的提升,从50秒左右降到了40秒左右。共享数据库连接而得到的性能提升的原因是,数据库连接是一个耗时耗资源的操作,需要同远程计算机进行网络通信,建立TCP连接,还需要维护连接状态表,建立数据缓冲区。如果共享数据库连接,则只需要进行一次数据库连接操作,省去了多次重新建立数据库连接的时间。针对数据库插入数据的优化
针对多线程的优化......
8.2.2.1一般性软件项目优化案例假设我们有这么一个项目,外部系统D通过系统对外提供的REST API接口从系统内部获取信息,从中提取出有效的信息,并通过JDBC存储到某数据库系统S中,以便供系统其他部分使用,上述操作的执行频率为每天一次,一般在午夜当系统空闲时定时执行。为了实现高可用性(High Availability),外部系统D部署在两台服务器上,因此需要分别从这两台服务器上获取信息并将信息插入数据库中,有效信息的条数达到了上千条,数据库插入操作次数则为有效信息条数的两倍。系统架构图如图8-1所示。 图8-1系统架构图为了快速地实现预期效果,在最初的实现中优先考虑了功能的实现,而未考虑系统性能和代码可读性等。系统大致有以下的实现。(1)REST API获取信息、数据库操作可能抛出的异常信息都被记录到日志文件中,作为调试用。(2)共有5次数据库连接操作,包括第一次清空数据库表,针对两个外部系统D各有两次数据库插入操作,这5个连接都是独立的,用完之后即释放。(3)所有的数据库插入语句都是使用java.sql.Statement类生成的。(4)所有的数据库插入语句,都是单条执行的,即生成一条执行一条。(5)整个过程都是在单个线程中执行的,包括数据库表清空操作,数据库插入操作,释放数据库连接。(6)数据库插入操作的JDBC代码散布在代码中。虽然这个版本的系统可以正常运行,达到了预期的效果,但是效率很低,从通过 REST API获取信息,到解析并提取有效信息,再到数据库插入操作,总共耗时100秒左右。而预期的时间应该在一分钟以内,这显然是不符合要求的。开始分析整个过程有哪些耗时操作,以及如何提升效率,缩短程序执行的时间。通过REST API获取信息,因为是使用外部系统提供的API,所以无法在此处提升效率;取得信息之后解析出有效部分,因为是对特定格式的信息进行解析,所以也无效率提升的空间。综上所述,效率可以大幅度提升的空间在数据库操作部分以及程序控制部分。针对日志的优化因为从两台服务器的外部系统D上获取到的信息是相同的,所以数据库插入操作会抛出异常,异常信息类似于“Attempt to insert duplicate record”,这样的异常信息跟有效信息的条数相等,有上千条。这种情况是能预料到的,所以可以考虑关闭日志记录,或者不关闭日志记录而是更改日志输出级别,只记录严重级别(severe level)的错误信息,并将此类操作的日志级别调整为警告级别(warning level),这样就不会记录以上异常信息了。本项目使用的是 Java 自带的日志记录类,以下配置文件将日志输出级别设置为严重级别。通过上述的优化之后,性能有了大幅度的提升,从原来的100秒左右降到了50秒左右。为什么仅仅不记录日志就能有如此大幅度的性能提升呢?查阅资料,发现已经有人做了相关的研究与实验。经常听到Java程序比C/C++程序慢的言论,但是运行速度慢的真正原因是什么,估计很多人并不清楚。对于CPU密集型的程序(即程序中包含大量计算),Java程序可以达到C/C++程序同等级别的速度,但是对于I/O密集型的程序(即程序中包含大量I/O操作),Java程序的速度就远远慢于C/C++程序了,很大程度上是因为C/C++程序能直接访问底层的存储设备。因此,不记录日志而得到大幅度性能提升的原因是,Java程序的I/O操作较慢,是一个很耗时的操作。针对数据库连接的优化假设程序***有若干次数据库连接操作,每次都需重新建立数据库连接,数据库插入操作完成之后又立即释放了,数据库连接没有被复用。为了做到共享数据库连接,可以通过单例模式 (Singleton Pattern)获得一个相同的数据库连接,每次数据库连接操作都共享这个数据库连接。这里没有使用数据库连接池(Database Connection Pool)是因为在程序只有少量的数据库连接操作,只有在大量并发数据库连接的时候才需要连接池。通过上述的优化之后,性能有了小幅度的提升,从50秒左右降到了40秒左右。共享数据库连接而得到的性能提升的原因是,数据库连接是一个耗时耗资源的操作,需要同远程计算机进行网络通信,建立TCP连接,还需要维护连接状态表,建立数据缓冲区。如果共享数据库连接,则只需要进行一次数据库连接操作,省去了多次重新建立数据库连接的时间。针对数据库插入数据的优化
针对多线程的优化......
同类热销商品¥108.00¥86.40
订单处理配送
北京奥维博世图书发行有限公司 china-pub,All Rights Reserved