欢迎来到天天文库
浏览记录
ID:30887932
大小:70.50 KB
页数:6页
时间:2019-01-04
《性能调优、虚拟机、垃圾回收、软硬件协调相关文章和视频—part1-java开发java经》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、性能调优、虚拟机、垃圾回收、软硬件协调相关文章和视频一Parti-Java开发Java经验技巧性能调优、虚拟机、垃圾回收、软硬件协调相关文章和视频—Parti本文由ImportNew-顾星竹翻译白javacodegeekso欢迎加入翻译小组。转载请见文末要求。最近好儿个刀,我一直在考虑整理性能调优、Java虚拟机(JVM).Java垃圾冋收(GC)、软硬件协调(MechanialSympathy)等主题的文章和视频,最终我决定花时间去做一一在我做这件事的时候也许正标志着智力提升的转折点。感谢Attila-Mihaly给我机会为他的年刊Java?Advcnt?
2、Calcndar?写下这篇后记。为此我阅读了一系列好符合本文要求的相关Java话题。本文对文章和视频的选择完全是随机的,按照我了解它们的先后进行排序。我的另一个目的是通过这项工作理解和拓宽自己的知识域,同时与他人分享。本文的内容包含三次演讲,一次Attila?Szegedi的演讲,两次Ben?Evans的演讲。这些演讲详细地讨论了Jqvq性能和GC方面的主题。Attila的演讲包含了很多他在推特做工程师的经验一一所以冇很多信息是超出生产系统领域H常经验的。多使用小对彖(thinobject)而不是富对彖(fatobject)是他的口头禅。Ben在他的两次演讲
3、中深度探讨了性能、JVM和GC。他指出了人们对性能,JVM和GC的误解,人们在产品中没有使用特定的运行时参数(nm-tinicfbg)。机器底层的工作方式如何?为什么按照这样的方式工作?为了得到最好的输出,应该做什么和不做什么?下面是我的评论,我决定从Attila?Szegedi的演讲开始,因为我挺喜欢这标题……1、我所知道的关于JVM性能调优的那些事儿?——Attila?Szegedi?@推特(视频&幻灯片)Attila进行这次演讲时正在推特工作,在那里他学到了很多JVM内部实现机制和Java语言木身的知识一一在推特,JVM调优、低延吋都是标准实践。他谈到
4、了下面这些有趣的话题:•延迟产生的原因。•已完成的代码不能直接上线。•需要性能调优的领域(主要是内存调优和锁竞争机制的调优)。•内存调优(内存溢出异常“OOME”、低延时优化、FAT数据)。FAT数据——这是Attila创造的一个新术语,讨论了如何解决由FAT数据引发产生的问题(非常深入而且有趣);学习了在Java或JVM语言屮各种数据类型的字节分配。他还讨论了一些比较深入的话题,例如建议压缩对象指针(这里包含了一个陷阱);通过JVM分析工具发现,Scala?2.7.7中有一些类型是低效的;不要使用Thrift因为它不是低延时的(low-latency),它
5、们的开销很大每个对象的开销增加了52到72字节,而且不支持32比特的浮点数;小心本地的线程——它们占用的资源比预期得更多。译注:ApacheThrift,一个可伸缩的跨语言服务框架。Attila分享了他对性能三角(Performancetriangle)概念的深入理解:GC是JVM最大的威胁;III代(也称年轻代)使用ConcCollcctor,新代(也称终身代)使用SWT进程;包含一系列吞吐量(throughput)、低延时的Collectoro通过大小口适应策略來提高性能是GC的改进目标。通过高吞吐量Collector配合)自适应策略(也可以不使用,用标
6、准检查程序"benchmark"测试这些结果,他带领我们游历了一系列?-XX:+Print等参数(flag)并说明了它们的作用。保持碎片数位于较低水平并避免GC完全停止。这其中包含许多GC工作的技术细节以及如何提高GC性能(同时优化新代和旧代)。与GC无关的延迟——线程协调优化。在使用线程时可以通过设置障碍0译注:通过避免竞争、减少延迟——可以配置原子值(AutomicValue)和原子引用(AutomicRefernce)一起使用;使用Cassandra?slaballocator〈译注:SlabAllocator,一禅內存曹理必制)可以帮助提高性能和效率
7、——无需口己编写内存管理器。Attila已经不再是“软引用,SoftReference"的粉丝——理论虽好但不实用,GC需要更多的周期才清除软引用对彖。结论经常去了解你的代码,它们往往是问题的根源所在一一框架常常导致性能问题。如果深谙如何更好地使用构成开发环境的基础模块数据结构,那么提高性能还有很多事情可以做。针对JVM维持最佳吞吐量和最佳性能是一个非常困难的游戏。―?建议观看视频,有很多上文概要没有覆盖到的内容?一2、Java性能的9大谬误Ben?Evans(博客)在这篇文章中Ben破除了一些Java性能、GC方面的神话和假设。涵盖的内容包括:1.Java
8、很慢。2.每行Java代码的功能都是孤立的。3.一个
此文档下载收益归作者所有