写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
主要内容包括:

1、概述

2、性能调优的层次

参考内容:

1、《Java程序性能优化 -- 让你的Java程序更快、更稳定》 一书,作者:葛一鸣

-------------------------------------------------------------------- 

1、概述

本章主要是对性能优化技术进行整体性的介绍,了解性能的概念和性能优化的基本思路与方法。

一般来说,程序的性能通过以下几个方面来表现:

  1. 执行速度: 程序的反应十分迅速,响应时间是否足够短。
  2. 内存分配: 内存分配是否合理,是否过多地消耗内存或者存在泄漏。
  3. 启动时间: 程序从运行到可以正常处理业务需要花费多长时间。
  4. 负载承受能力: 当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。

常见的性能参考指标如下:

  1. 执行时间: 一段代码从开始运行到运行结束,所使用的时间。
  2. CPU时间: 函数或者线程占用CPU的时间。
  3. 内存分配: 程序在运行时占用的内存空间。
  4. 磁盘吞吐量: 描述I/O的使用情况。
  5. 网络吞吐量: 描述网络的使用情况。
  6. 响应时间: 系统对某用户行为或者事件做出响应的时间。

2、性能调优的层次

为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化,常见的优化方法有:代码优化、设计优化、JVM虚拟机优化、数据库优化、操作系统层面优化等等

2.1、设计优化

  设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行。在软件开发之前,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方法。由于软件设计和架构对软件整体质量有决定性的影响,所以,设计调优对系统性能的影响也是最大的。

2.2、代码优化

  代码调优是在软件开发过程中,或者在软件开发完成后,软件维护过程中进行的对程序代码的改进和优化。代码优化涉及诸多的编码技巧,需要在合适的场景中选择合适的API、算法、数据结构等等

2.3、JVM优化

  由于Java程序是运行JVM虚拟机上的,所以对JVM虚拟机进行优化也能在一定程度上提升Java程序的性能。

2.4、数据库优化

对于数据库的调优可以分为3个部分:

  1. 在应用层对SQL语句进行优化
  2. 对数据库进行优化
  3. 对数据库软件进行优化

2.5、操作系统优化

  不同类型的操作系统调优的手段和参数可能会有所不同,需要根据具体的操作进行相应的优化操作。

第一章 -- Java性能调优概述的更多相关文章

  1. Java性能调优概述

    目录 Java性能调优概述 性能优化有风险和弊端,性能调优必须有明确的目标,不要为了调优而调优!!!盲目调优,风险远大于收益!!! 程序性能的主要表现点 执行速度:程序的反映是否迅速,响应时间是否足够 ...

  2. 第六章 Java性能调优工具(待续)

    Java性能调优工具 Windows工具 JDK命令行工具 JConsole工具 Visual VM多合一工具 Visual VM对QQL的支持 MAT内存分析工具 MAT对QQL的支持 JProfi ...

  3. Java程序性能优化读书笔记(一):Java性能调优概述

    程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...

  4. [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

    本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...

  5. Java性能调优:利用JMC分析性能

    Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻. 好的分析工具能起到事半功倍的效果,利用分析利器JMC.JFR,可以实现性能问题的准确定位. 本文主要阐述如何利用JMC分析 ...

  6. Java性能调优攻略全分享,5步搞定!(附超全技能图谱)

    对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...

  7. Java性能调优笔记

    Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...

  8. Java性能调优(一):调优的流程和程序性能分析

     https://blog.csdn.net/Oeljeklaus/article/details/80656732 Java性能调优 随着应用的数据量不断的增加,系统的反应一般会越来越慢,这个时候我 ...

  9. Java性能调优:利用JFR生成性能日志

    Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻. 好的分析工具能起到事半功倍的效果,利用分析利器JMC.JFR,可以实现性能问题的准确定位. 本文主要阐述如何利用JFR生成 ...

随机推荐

  1. IE6透明PNG解决方案

    IE6不支持PNG-24图片一直困扰很多人,但是可以通过IE的独有的滤镜来解决,解决的方案很多,比如:将滤镜写在CSS里,还可以写成单独的 Javascript文件,本来认为推荐两种做法:第一种,将所 ...

  2. vs2012 error c4996: 'fopen': This function or variable may be unsafe

    1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------1>  stdafx.cpp1>d:\code\20130925\201309 ...

  3. C++类型转换 -- 由其他类型转换到自定义类型

    由其他类型转换到自定义类型 由其他类型(如int,double)向自定义类的转换是由构造函数来实现,只有当类的定义和实现中提供了合适的构造函数,转换才能通过. /******************* ...

  4. PTP简介

    PTP简介 在通信网络中,许多业务的正常运行都要求网络时钟同步,即整个网络各设备之间的时间或频率差保持在合理的误差水平内.网络时钟同步包括以下两个概念: l              时间同步:也叫相 ...

  5. MYSQL-----IFNULL()函数的用法

    Mysql查询中可以使用IFNULL()函数,IFNULL函数中有两个参数,它的作用是测试如果ifnull第一个参数不为null,就会显示出查询的结果,如果第一个参数为null,则会返回第二个参数的字 ...

  6. base64的作用

    本函数将字符串以 MIME BASE64 编码.此编码方式可以让中文字或者图片也能在网络上顺利传输.在 BASE64 编码后的字符串只包含英文字母大小写.阿拉伯数字.加号与反斜线,共 64 个基本字符 ...

  7. 【58沈剑架构系列】细聊分布式ID生成方法

    一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:tiezi-id 这个记录标识往往就是数据 ...

  8. [实战]MVC5+EF6+MySql企业网盘实战(14)——逻辑重构

    写在前面 上篇文章关于修改文件夹和文件名称导致的找不到物理文件的问题,这篇文章将对其进行逻辑的修改. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6 ...

  9. bzoj 1131 简单树形dp

    思路:随便想想就能想出来啦把...  卡了我一个vector... #include<bits/stdc++.h> #define LL long long #define fi firs ...

  10. 二十二 使用__slots__

    正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Student(object): pa ...