内存参数

java -Xms -Xmx设置java应用程序运行的内存大小,Xms Xmx PermSize MaxPermSize 区别

时光总嘲笑我的痴心妄想 提交于 2019-12-03 16:07:30
java -Xms -Xmx 设置java 应用程序运行的内存大小,Xms Xmx PermSize MaxPermSize 区别 版权声明:本文为博主原创文章,未经博主允许不得转载。 -Xms 和 -Xmx 是 Java 命令的一个选项,用来设置你的应用程序启动时的可用内存大小和运行时的可用的内存大小。 Xmx 是 java 的一个选项,用来设置你的应用程序能够使用的最大内存数(看好,只是你的应用程序,不是整个 jvm ) , 如果你的程序要花很大内存的话,那就需要修改缺省的设置,比如配置 tomcat 的时候,如果流量啊程序啊都很大的话就需要加大这个值了,不过有一点是要记住的,不要大得超过你的机器的内存,那样你的机器会受不了的,到时候就死翘翘了。 Xms 是另一个设置内存的参数 , 用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到 Xmx 的限制。 不同的虚拟机的实现虽然千差万别,但是他们的运行模式都是一样的,只是性能有所不同罢了。 虚拟机只是一个软件实现,它是一个在内存中的机器,而我们机器上装的是 jre ,是为了生成这个 jvm 用的。通常来说,每次运行一个 application 都会生成一个 jvm ,但是也可以有多个程序在同一个 jvm 里面。 Eclipse 崩溃,错误提示: MyEclipse

eclipse.ini、flashbuilder.ini内存设置和堆栈非堆栈问题

一个人想着一个人 提交于 2019-12-03 16:07:05
eclipse.ini内存设置 ,flashbuilder.ini类似: -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 下面我们一一进行回答 1. 各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据

Tomcat项目内存参数调优

与世无争的帅哥 提交于 2019-12-03 11:31:52
一、常见的Java内存溢出有以下三种: 1. Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出 解释说明:JVM在启动的时候会自动设置JVM Heap的值,JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。其初始空间默认是物理内存的1/64,最大空间不可超过物理内存。JVM提供-Xmn -Xms -Xmx等选项来进行设置。 出错场景:在JVM中,如果98%的时间是用于GC,且可用的Heap size不足2%时,将会出现JVM Heap溢出 解决方法:修改JVM Heap的大小。 2.java.lang.OutOfMemoryError: PermGen space 即PermGen space溢出 解释说明:PermGen space是指内存的永久保存区域。这个区域主要存放Class和Meta信息,Class在被Load时就会被放入PermGen space。 出错场景:如果APP载入很多CLASS,就可能会出现PermGen space溢出。(因为sun的GC不会在程序运行时对PermGen space进行清理)常见于web服务器对JSP进行pre compile的时候 解决方法:修改MaxPermSize大小 3. java.lang.StackOverflowError 即栈溢出 解释说明

Java基础面试题总结(转)

陌路散爱 提交于 2019-12-03 11:22:11
目录 索引 Java基础知识篇 Java web基础知识总结 Java集合篇常见问题 Java基础知识篇 面向对象和面向过程的区别 面向过程:   优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象:   优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能比面向过程低 Java语言有哪些特点?   1,简单易学;2,面向对象(封装,继承,多态);3,平台无关性(Java虚拟机实现平台无关性);4,可靠性;5,安全性;6,支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程 程序设计,而Java语言却提供了多线程支持);7,支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的,因此Java语言不仅支持网络编程而且很方便);8,编译与解释并存; 什么是字节码?采用字节码的最大好处是什么?什么Java是虚拟机? 先看下 java 中的编译器和解释器:   Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口

程序员需要了解的硬核知识之磁盘

亡梦爱人 提交于 2019-12-03 10:05:26
程序员需要了解的硬核知识之磁盘 https://www.cnblogs.com/cxuanBlog/p/11776310.html 此篇文章是 《程序员需要了解的硬核知识》系列第四篇,历史文章请戳 程序员需要了解的硬核知识之内存 程序员需要了解的硬核知识之CPU 程序员需要了解的硬核知识之二进制 我们大家知道,计算机的五大基础部件是 存储器 、 控制器 、 运算器 、 输入和输出设备 ,其中从存储功能的角度来看,可以把存储器分为 内存 和 磁盘 ,内存我们上面的文章已经介绍过了,那么此篇文章我们来介绍一下磁盘以及内存和磁盘的关系。 认识磁盘 首先,磁盘和内存都具有存储功能,它们都是存储设备。区别在于,内存是通过 电流 来实现存储;磁盘则是通过 磁记录技术 来实现存储。内存是一种高速,造假昂贵的存储设备;而磁盘则是速度较慢、造假低廉的存储设备;电脑断电后,内存中的数据会丢失,而磁盘中的数据可以长久保留。内存是属于 内部存储设备 ,硬盘是属于 外部存储设备 。一般在我们的计算机中,磁盘和内存是相互配合共同作业的。 一般内存指的就是主存(负责存储CPU中运行的程序和数据);早起的磁盘指的是软磁盘(soft disk,简称软盘),就是下面这个 (2000年的时候我曾经我姑姑家最早的计算机中见到过这个,当时还不知道这是啥,现在知道了。) 如今常用的磁盘是硬磁盘(hard disk,简称硬盘)

JAVA泛型

我只是一个虾纸丫 提交于 2019-12-03 04:42:06
JAVA中的基本类型,以及泛型的介绍、使用。 一、数据类型 数据类型 :数据与操作是构成程序的两个要素,数据也是程序处理的对象。数据类型是对程序所处理的数据的抽象,数据类型决定了数据的含义、表示方式、存储格式和运算。 JAVA基本数据类型 :不存在引用的概念,基本数据类型都是直接存储在内存中的内存栈上,数据本身的值就是存储在栈空间里面,因此使用时需赋具体值,且可用==判断是否相等。JAVA里面的八种基本数据类型都是这种存储模型。 JAVA八种基本数据类型:    byte :JAVA中最小的数据类型,在内存中占8位,即1个字节。取值范围是-128 ~ 127,默认值0。    short :短整型,在内存中占16位,即2个字节。取值范围-32768~32717,默认值0。    int :整型,用于存储整数。在内存中占32位,即4个字节。取值范围-2147483648~2147483647,默认值0。    long :长整型,在内存中占64位,即8个字节。取值范围-2 63 ~2 63 -1,默认值0L。    float :浮点型,在内存中占32位,即4个字节。用于存储带小数点的数字(与double的区别是float小数点后精度为7位),默认值为0。    double :双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0。    char :字符型

carbondata使用总结

隐身守侯 提交于 2019-12-03 04:19:13
CarbonData简介 CarbonData是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术,以提高计算效率,有助于加速超过PB数量级的数据查询,可用于更快的交互查询。同时,CarbonData也是一种将数据源与Spark集成的高性能分析引擎。 图1 CarbonData基本架构 使用CarbonData的目的是对大数据即席查询提供超快速响应。从根本上说,CarbonData是一个OLAP引擎,采用类似于RDBMS中的表来存储数据。用户可将大量(10TB以上)的数据导入以CarbonData格式创建的表中,CarbonData将以压缩的多维索引列格式自动组织和存储数据。数据被加载到CarbonData后,就可以执行即席查询,CarbonData将对数据查询提供秒级响应。 CarbonData将数据源集成到Spark生态系统,用户可使用Spark SQL执行数据查询和分析。也可以使用Spark提供的第三方工具JDBCServer连接到Spark SQL。 CarbonData结构 CarbonData作为Spark内部数据源运行,不需要额外启动集群节点中的其他进程,CarbonData Engine在Spark Executor进程之中运行。 图2 CarbonData结构 存储在CarbonData

oracle学习篇:五、Buffer Cache与Shared Pool原理

梦想与她 提交于 2019-12-03 02:17:55
Buffer Cache与Shared Pool是SGA中的最重要和最复杂的两个部分。 5.1 Buffer Cache原理 当一个进程需要访问数据时,首先需要确定数据在内存中是否存在: 如果数据在buffer中存在,则需要根据数据的状态来判断是否可以直接访问还是需要构造一致性读取; 如果数据在buffer中不存在,则需要在buffer cache中寻找足够的空间以装载需要的数据,如果在buffer cache中找不到足够的空间,则需要触发dbwn去写脏数据,释放buffer空间。 5.1.1 LRU与Dirty List 在buffer cache中,oracle通过几个链表进行内存管理,其中最为人熟知的是LRU List和Dirty List。 数据库初始化时,所有的Buffer都被hash 到LRU List上管理,当需要从数据文件上读取数据时,首先要在LRU LIst上寻找Free的Buffer,然后读取数据到Buffer cache中;当数据被修改后,状态变为dirty,就可以被移动至dirty list(checkpoint queue),dirty list上的都是候选的可以被DBWR写出到数据文件的buffer,一个buffer要么在LRU List上,要么在Dirty List上存在,不能同时存在于多个List。 Buffer Cache的原理: (1

C++中二维数组作为函数参数

匿名 (未验证) 提交于 2019-12-03 00:40:02
在平时,我们经常会遇到将整个数组作为函数参数的情况,一维数组的情况,就是用数组名当形参和实参,传递的是数组的首地址。二维数组我们用的也很多,但是总是有各种问题,今天我总结一下 有个很重要的一点,字符串“China”在编译器眼里就是一个地址!操作字符串是通过它在内存中的存储单元的首地址进行的,这是字符串的终极本质 如果 "China", 存储在内存中的 0x3000 0x3001 0x3002 0x3003 0x3004 0x3005 . 首先我们从指针的角度重新认识下二维数组,int a[3][4],这里的a是一个行指针,指向的是二维数组的行首,a+1指向的是第二行,指的是a[1],它的类型是int(*)[4]。a[i]是一个元素指针,比如a[0]是第1行的一维数组的数组名,指向的是a[0][0],a[0]+1指向的是a[0][1]。它的类型是int*。 int (*p)[4],这个时候p和a是等价的,因为都是行指针,类型都是int(*)[4]。 (1)二维数组指定行数列数作为形参,实参是二维数组名 void f( int a[ 3 ][ 4 ]); void f( int a[][ 4 ]); void f( int (*a)[ 4 ]); 上述三种都是等价的。但是不能省略数组的列数,因为实参传递的是二维数组的起始地址,主要原因是 二维数组在栈内分配的内存是连续的

mem系列与str系列函数了解

匿名 (未验证) 提交于 2019-12-03 00:28:02
系列函数通常处理内存内容,而Str通常处理字符串,这俩个家族系列函数经常会使用,在网上搜集了一些资料进行了整理,方便自己以后查阅,下面介绍了memcpy,strcpy,strncpy,memmove,memcmp,strcmp,strcat,strstr,strtok等函数: 函数原型 :void *memcpy(void *dest, const void *src,size_t n); 函数功能 :内存拷贝;将src指向内存地址的连续N个指针位置的内容拷贝至dest指针指向的位置 函数返回 :无 参数说明 : dest ― 目的内存空间指针 src ― 源内存 n ― 拷贝指针位置个数 # include <memory> include <iostream> include < string > void main() { char * src = “Hello Frankie World !”; char * dest = new char [ 50 ]; memset (dest, 0 , 50 ); memcpy (dest,src, 7 ); std :: cout <<”dset值为:”<< std ::endl; Out(dest); } 函数原型 :void * memccpy(void *dest, void *src, unsigned char c,