zoukankan      html  css  js  c++  java
  • JVM调优

    JVM调优基础

     1. 先了解一些概念

        一般来说,只要使用java程序和jdk,都会涉及JVM,那么涉及JVM,我的理解就是大概率会涉及JVM有关调优的问题。weblogic,tomcat,resin,jboss,and so on 哈哈。

           JVM底层是用C++编写的。解决了java可以跨平台,即一次编译,到处运行。网络上说的多数是一些参数介绍和参数配比,并不是很深入。

      1) 数据类型

        在Java虚拟机中,数据类型分为基本类型和引用类型。基本类型保存的变量是原始的值,是在栈里运行的;引用类型保存的是变量的引用值。引用变量主要两部分组成:1)指针;2.数据本身。

                   a.基本类型:byte,short,int,long,char,float,double,Boolean。

         b.引用类型:类类型,接口类型和数组。

      2)堆和栈

            堆和栈是程序运行的关键。栈是运行时的单位,堆是存储的单位。栈解决程序的运行问题,比如:程序如何执行,或者如何处理数据等。堆解决的是数据存储的问题,数据怎么放,放在哪里等。堆中存的是对象,栈中存的是基本数据类型和堆中对象的引用。

        在Java中,栈的大小通过-Xss来设置的。

           3)   为什么要把堆和栈区分出来?栈中不是也可以存储数据吗?

     2.垃圾回收

                我个人的理解是垃圾回收也是JVM调优的一个核心。

                垃圾回收算法

                       按照基本回收策略划分:1)引用计数。2)标记-清除。3)复制。4)标记-整理。   

        引用计数:是一种比较古老的算法,现在用的不是很多。

                  标记-清除:这个算法执行分为两个阶段。第一阶段:从引用根节点开始标记所有被引用的对象;第二阶段:遍历整个堆,把未标记的对象清除。这种算法需要暂停整个应用,同时,会产生内存碎片。

                               

            

           

    你不向我走来,我便向你走去。
  • 相关阅读:
    bloom(转)
    关于模态对话框某些情况下在opengl下需要按alt才能显示的问题
    程序员的特征
    ffmpeg cross compile
    Tone mapping
    osgXI
    dx11 about post process...
    asp.net网站异常处理方式
    把datatable导出到指定的excel中
    Visual Studio 2008功能提升
  • 原文地址:https://www.cnblogs.com/renyongbin/p/15392368.html
Copyright © 2011-2022 走看看