并不是每个程序都需要调优。如果一个程序性能表现和预期一样,你不必付出额外的精力去提高它的性能。然而,在程序调试完成之后,很难马上就满足它的性能需求,于是就有了调优这项工作。无论哪种编程语言,对应用程序进行调优都需要丰富的技术知识并且注意力高度集中。另外,你也不应该用相同的方式对两个程序调优,因为每个程序都有它自己独特的运作方式和不同的资源使用方式。正因如此,调优比写程序需要更多基础知识。例如,你需要熟悉虚拟机、操作系统和计算机架构。而当你面对在这些知识基础上编写的程序时,就能成功地对它进行调优。
GC的作用范围
要谈GC的作用范围,首先要谈JVM的内存结构,JVM内存中主要有以下几个区域:堆、方法区(JVM规范中的叫法,Hotspot大致对应的是Metaspace)、栈、本地方法栈、PC等,其中GC主要作用在堆上。
其中堆和方法区是所有线程共享的,其它则为线程独有,HotSpot JVM使用基于分代的垃圾回收机制,所以在堆上又分为几个不同的区域。
调优方法
建议你使用如下方法对程序进行调优。
首先,检查性能调优是否必要。测量性能不是一件简单的工作,你也不能保证每次都获得满意的结果。因此如果程序已经满足预期性能需求,不必在调优上增加额外的投入了。
问题只出在一个地方,你要做的就是去解决掉它。二八定律(Pareto principle)对性能调优同样适用。这不是说某个模块的低性能一定只源于一个问题,而是强调我们应该在调优时把注意力放在影响最大的那个问题上。在处理好了最重要的之后,你才应该去解决剩下其他的。也就是建议一次只对一个问题进行修复。
尚学堂立志解决中国教育不公平和低效率问题,帮助千千万万被传统教育方式耽误的人,传授实用、前沿的知识,成就学员个人理想,为爱你的人和你爱的人创造美好的生活。尚学堂12大精英团队+各类实战项目,真正实现1+1>10的目标效果。帮助学员迅速成长,持久腾飞,成就学员“高富帅”人生
留言与评论(共有 0 条评论) |