前言:

  对于JVM学习用处的理解:我们程序员写的代码,虽说是放在服务器(linux)系统上的。但是很多时候,受JVM的影响,其实程序并没有发挥出服务器的最大性能。这时候,JVM就成为了瓶颈了。有瓶颈就要想办法优化解决,这和程序内部的优化一样。区别是,程序的优化一版是重构代码,而JVM的优化,往往是通过修改配置参数。

1.虚拟机基本结构:

  1)方法区(永久区、元空间):类加载子系统(加载class信息)、常量

  2)java堆:java对象实例(所有线程共享)。【存数据】

  3)直接内存:NIO库允许使用系统的内存空间(不受Xmx指定的最大堆大小)

  4)垃圾回收系统:GC

  5)java栈:局部变量、方法参数,在线程创建时创建,每个线程一个。【存方法、线程相关的数据】

    5.1)通过-Xss指定最大栈空间

    5.2)是先入后出的堆栈结构

    5.3)超过请求的栈的深度,会抛出StackOverflowError的栈溢出错误

  6)本地方法栈:与java栈类似,不同的是一个调用JAVA方法,一个调用本地方法(一般由C语言写)

  7)PC寄存器:每个线程的私有空间,如果是JAVA方法,则会记录当前指令。如果是本地方法则是undifined。

  8)执行引擎:负责执行字节码。(现代虚拟机为了提高效率,会使用即时编译技术,编译成机器码后执行)

2.对象去哪儿:Java堆辨清

  1)java堆,分新生代(eden、s0、s1),老年代。

  2)大部分情况,对象首先在eden区,然后一次新生代GC后,会进入s0或s1。之后,每次新生代GC后,它的年龄加一。达到一定条件后,被认为是老年代对象,进入老年代

《Java虚拟机JVM故障诊断与性能优化》读书笔记(未完待续)的更多相关文章

  1. 实战JAVA虚拟机 JVM故障诊断与性能优化 pdf

    需要的小伙伴拿走,百度云盘:http://pan.baidu.com/s/1nvm6RHZ

  2. CSS写作建议和性能优化总结(未完待续)

    这里是我从网上的一篇文章看过来的,这里先做一点小结,之后再补充. 1.CSS渲染规则 今天在微博的一篇文章上看到的,之前我都以为渲染是从左往右渲染.发现我的想法是错的.之所以采用从右往左的渲染规则,是 ...

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

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

  4. Java并发笔记-未完待续待详解

    为什么需要并行? – 业务要求 – 性能 并行计算还出于业务模型的需要 – 并不是为了提高系统性能,而是确实在业务上需要多个执行单元. – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 ...

  5. java程序性能优化读书笔记-垃圾回收

    衡量系统性能的点 执行速度:即响应时间 内存分配:内存分配是否合理,是否过多消耗内存或者存在内存泄露 启动时间:程序从启动到正常处理业务需要的时间 负载承受能力:当系统压力上升,系统执行速度和响应时间 ...

  6. Java程序性能优化-读书笔记(一) 单例模式

    单例模式: 目的: 确保系统中一个类只产生一个实例. 好处: 1.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销. 2.由于new操作的次数减少, ...

  7. java性能优化读书笔记(1)

    1.采用clone()方式创建对象 java语言里面的所有类都默认继承自java.lang.Object,此类里有一个clone()方法: 拷贝对象返回的是一个新的对象,而不是一个对象的引用地址: 拷 ...

  8. Flink原理、实战与性能优化读书笔记

    第一章 ApacheFlink介绍 一.Flink优势 1. 目前唯一同时支持高吞吐.低延迟.高性能的分布式流式数据处理框架 2. 支持事件事件概念 3. 支持有状态计算,保持了事件原本产生的时序性, ...

  9. JavaScript设计模式:读书笔记(未完)

    该篇随我读书的进度持续更新阅读书目:<JavaScript设计模式> 2016/3/30 2016/3/31 2016/4/8 2016/3/30: 模式是一种可复用的解决方案,可用于解决 ...

随机推荐

  1. 服务网格Istio初探

    1. 服务网格Istio初探 1.1. 什么是Istio 它是一个完全开源的服务网格.什么是服务网格? 这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互.随着规模和复杂性的增长,服务 ...

  2. Web前端2019面试总结2

    1.js继承: 想要继承,就必须要提供个父类(继承谁,提供继承的属性) 组合继承(组合原型链继承和借用构造函数继承)(常用) 重点:结合了两种模式的优点,传参和复用 特点:1.可以继承父类原型上的属性 ...

  3. python高级编程之 web静态服务器

    返回固定数据 import socket def request_handler(new_client_socket): """ 响应客户端请求的核心函数 "& ...

  4. Go语言入门——interface

    1.Go如何定义interface Go通过type声明一个接口,形如 type geometry interface { area() float64 perim() float64 } 和声明一个 ...

  5. mybatis update 返回值

    mybatis sql: <update id="test" parameterType="map"> update test_0731 set n ...

  6. K-th Path CodeForces - 1196F

    题目链接:https://vjudge.net/problem/CodeForces-1196F 题意:从图中找出第K短的最短路,最短路:从一个点到另一个的最短距离. 思路:题目说了,每两个点之间的边 ...

  7. 分享一个批量修改文件编码的python脚本

    分享一个自己编写的递归查找子目录,将所有cpp文件编码修改为utf-8编码格式的小脚本 #i!/usr/bin/env python3 # -*- coding:utf-8 -*- import os ...

  8. xadmin引入drf-yasg生成Swagger API文档

    一.安装drf-yasg: 由于django-rest-swagger已经废弃了 所以引入了drf-yasg pip install drf-yasg 安装install drf-yasg库 http ...

  9. PAT 乙级 1019.数字黑洞 C++/Java

    题目来源 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有 ...

  10. Pytorch并行计算:nn.parallel.replicate, scatter, gather, parallel_apply

    import torch import torch.nn as nn import ipdb class DataParallelModel(nn.Module): def __init__(self ...