第一章 -- Java性能调优概述
写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
主要内容包括:
1、概述
2、性能调优的层次
参考内容:
1、《Java程序性能优化 -- 让你的Java程序更快、更稳定》 一书,作者:葛一鸣
--------------------------------------------------------------------
1、概述
本章主要是对性能优化技术进行整体性的介绍,了解性能的概念和性能优化的基本思路与方法。
一般来说,程序的性能通过以下几个方面来表现:
- 执行速度: 程序的反应十分迅速,响应时间是否足够短。
- 内存分配: 内存分配是否合理,是否过多地消耗内存或者存在泄漏。
- 启动时间: 程序从运行到可以正常处理业务需要花费多长时间。
- 负载承受能力: 当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。
常见的性能参考指标如下:
- 执行时间: 一段代码从开始运行到运行结束,所使用的时间。
- CPU时间: 函数或者线程占用CPU的时间。
- 内存分配: 程序在运行时占用的内存空间。
- 磁盘吞吐量: 描述I/O的使用情况。
- 网络吞吐量: 描述网络的使用情况。
- 响应时间: 系统对某用户行为或者事件做出响应的时间。
2、性能调优的层次
为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化,常见的优化方法有:代码优化、设计优化、JVM虚拟机优化、数据库优化、操作系统层面优化等等
2.1、设计优化
设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行。在软件开发之前,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方法。由于软件设计和架构对软件整体质量有决定性的影响,所以,设计调优对系统性能的影响也是最大的。
2.2、代码优化
代码调优是在软件开发过程中,或者在软件开发完成后,软件维护过程中进行的对程序代码的改进和优化。代码优化涉及诸多的编码技巧,需要在合适的场景中选择合适的API、算法、数据结构等等
2.3、JVM优化
由于Java程序是运行JVM虚拟机上的,所以对JVM虚拟机进行优化也能在一定程度上提升Java程序的性能。
2.4、数据库优化
对于数据库的调优可以分为3个部分:
- 在应用层对SQL语句进行优化
- 对数据库进行优化
- 对数据库软件进行优化
2.5、操作系统优化
不同类型的操作系统调优的手段和参数可能会有所不同,需要根据具体的操作进行相应的优化操作。
第一章 -- Java性能调优概述的更多相关文章
- Java性能调优概述
目录 Java性能调优概述 性能优化有风险和弊端,性能调优必须有明确的目标,不要为了调优而调优!!!盲目调优,风险远大于收益!!! 程序性能的主要表现点 执行速度:程序的反映是否迅速,响应时间是否足够 ...
- 第六章 Java性能调优工具(待续)
Java性能调优工具 Windows工具 JDK命令行工具 JConsole工具 Visual VM多合一工具 Visual VM对QQL的支持 MAT内存分析工具 MAT对QQL的支持 JProfi ...
- Java程序性能优化读书笔记(一):Java性能调优概述
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...
- [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析
本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...
- Java性能调优:利用JMC分析性能
Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻. 好的分析工具能起到事半功倍的效果,利用分析利器JMC.JFR,可以实现性能问题的准确定位. 本文主要阐述如何利用JMC分析 ...
- Java性能调优攻略全分享,5步搞定!(附超全技能图谱)
对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...
- Java性能调优笔记
Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...
- Java性能调优(一):调优的流程和程序性能分析
https://blog.csdn.net/Oeljeklaus/article/details/80656732 Java性能调优 随着应用的数据量不断的增加,系统的反应一般会越来越慢,这个时候我 ...
- Java性能调优:利用JFR生成性能日志
Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻. 好的分析工具能起到事半功倍的效果,利用分析利器JMC.JFR,可以实现性能问题的准确定位. 本文主要阐述如何利用JFR生成 ...
随机推荐
- 浅析linux内核中timer定时器的生成和sofirq软中断调用流程(转自http://blog.chinaunix.net/uid-20564848-id-73480.html)
浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(& ...
- URAL题解三
URAL题解三 URAL 1045 题目描述:有\(n\)个机场,\(n-1\)条航线,任意两个机场有且只有一种方案联通.现有两个恐怖分子从\(m\)号机场出发,第一个人在机场安装炸弹,乘坐飞机,引爆 ...
- go语言入门(三)
条件语句 go语言的条件语句结构如下: go语言的条件语句和其他语言类似.简单列举下: 1.if 语句,布尔表达式不需要括号 if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } 2 ...
- Windows: 如何配置IPv6隧道
清空隧道配置: netsh interface ipv6 set teredo disable netsh interface ipv6 6to4 set state disable netsh in ...
- PHP中的魔术方法和关键字
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...
- 洛谷 P1296奶牛的耳语 题解
题目传送门 这道题很显然可以用O(n2)的方法来做(记得排序),由于数据较水...但还是在for循环中加一些优化:++i,据说这样会快一些... #include<bits/stdc++.h&g ...
- 实现celery中出现拥挤队列时,及时发邮件通知
里面有几个常用的功能,以后值得借鉴. 如获取脚本目录,IP,获取shell返回值,发送邮件等.. 上午写完,中午测试,下午上线~~ #!/usr/bin/env python # -*- coding ...
- Hadoop(六)MapReduce的入门与运行原理
一 MapReduce入门 1.1 MapReduce定义 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架: Mapreduce核心功能是将用 ...
- 大理石在哪儿(UVa10474)
题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=835&a ...
- JavaScript中继承的实现
继承是类和类之间的关系,继承使得子类别具有父类别的属性和方法. js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言, ...