
jvm
哈哈哈哈哈哈哈111
这个作者很懒,什么都没留下…
展开
-
JVM调优总结(十)-调优方法
JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。转载 2015-11-09 18:54:54 · 1751 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
来自:http://unixboy.iteye.com/blog/174173堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大转载 2015-12-14 10:16:26 · 674 阅读 · 0 评论 -
java垃圾回收之Minor GC和Major GC
深入理解Java虚拟机:JVM高级特性与最佳实践 对Minor GC和Major GC做点笔记 新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。 老年代 GC(Major GC / Full GC):指发生在老年代的 G原创 2015-11-20 17:37:27 · 3432 阅读 · 0 评论 -
什么时候执行full gc
JVM是Java Virtual Machine(Java虚拟机)的缩写。要理解jvm的原理,首先必须理解jvm的堆(heap),栈(stack)以及方法区。堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区转载 2015-12-21 13:06:27 · 1935 阅读 · 0 评论 -
Java垃圾回收机制
综合了若干人的blog~1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后转载 2015-12-15 09:50:42 · 371 阅读 · 0 评论 -
java堆、栈、方法区、常量池
1:栈 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 每个线程包含一个栈区,每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。栈分为3个部分:转载 2015-12-14 09:52:37 · 9376 阅读 · 0 评论 -
强引用,软引用,弱引用,虚引用解释
Java 如何有效地避免OOM:善于利用软引用和弱引用 想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲: 一.了解 强引用、软引用、弱引用、虚引用的概念 二.进一步理解软引用和弱引用 三.如何利用软引用和转载 2015-12-15 09:33:09 · 490 阅读 · 4 评论 -
tomcat中jvm参数设置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。一、Java JVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚转载 2015-12-14 09:42:26 · 15872 阅读 · 1 评论 -
聊聊JVM的年轻代
聊聊JVM的年轻代1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死转载 2015-11-20 17:45:04 · 1584 阅读 · 0 评论 -
在运行时开启GC日志
本文由 ImportNew - elviskang 翻译自 JavaCodeGeeks。欢迎加入翻译小组。转载请见文末要求。我们经常会遇到JVM运行时出错的情况。若能在启动时加入一些启动选项(startup option),便可以获取与bug相关的重要线索,从而有希望根治它们。但在实际操作时,我们总是忘记添加-XX:+HeapDumpOnOutOfMemoryError 或 -XX:+Pr转载 2015-11-12 18:54:31 · 3393 阅读 · 0 评论 -
JVM垃圾收集器异同
VM 垃圾收集器有3类,这里主要介绍我们常用的 并行和并发收集器:The Throughput Collector (也叫并行收集器)串行收集器在GC时会停止其他所有工作线程(stop-the-world),CPU利用率是最高的,所以适用于要求高吞吐量(throughput)的应用,但停顿时间(pause time)会比较长,所以对web应用来说就不适合,因为这意味着用户等待时间会转载 2015-12-14 10:29:29 · 421 阅读 · 0 评论