- 浏览: 386142 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (314)
- java (132)
- 生活 (13)
- javase模式 (6)
- weblogic (4)
- jquery (5)
- sql (21)
- ecside (1)
- el (3)
- css (5)
- spring (7)
- ireport (2)
- linux (14)
- struts2 (2)
- jstl (1)
- rmi (1)
- rose (9)
- js (6)
- swing (4)
- webservice (1)
- jboss (1)
- ejb3 (2)
- xml (1)
- 线程 (9)
- socket (3)
- jms (2)
- tomcat (10)
- 领域驱动 (3)
- json (3)
- 权限 (2)
- jvm (1)
- 书籍 (1)
- eclipse RCP (0)
- 数据库设计 (10)
- 软件分析建模 (5)
- 分析建模 (3)
- hibernate jpa (5)
- Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等 (1)
- 项目管理 (2)
- 财务 (0)
- oracle (2)
- 需求 (2)
- rcp gef (0)
- c++ (1)
- hadoop (2)
- BIGDATA (3)
- c (6)
最新评论
-
lh_kevin:
...
jpa 注解 -
一别梦心:
你好,我也遇到此问题了。就你贴的那段代码,你说了两种解决方式, ...
Hibernate的Antlr在Weblogic中产生Jar冲突的历史缘故以及解决办法 -
fireinjava:
...
el表达式 -
宋建勇:
...
JSON: property "xxx" has no getter method in class "..." -
handawei:
有道理,jpa是orm框架的java标准,它关注的是对象到关系 ...
jpa 注解
分代垃圾回收流程示意
选择合适的垃圾收集算法
串行收集器
用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。
并行收集器
对年轻代进行并行垃圾回收,因此可以减少垃圾回收时间。一般在多线程多处理器机器上使用。使用-XX:+UseParallelGC.打开。并行收集器在J2SE5.0第六6更新上引入,在Java SE6.0中进行了增强--可以对年老代进行并行收集。如果年老代不使用并发收集的话,默认是使用单线程进行垃圾回收,因此会制约扩展能力。使用-XX:+UseParallelOldGC打开。
使用-XX:ParallelGCThreads=<N>设置并行垃圾回收的线程数。此值可以设置与机器处理器数量相等。
此收集器可以进行如下配置:
最大垃圾回收暂停:指定垃圾回收时的最长暂停时间,通过-XX:MaxGCPauseMillis=<N>指定。<N>为毫秒.如果指定了此值的话,堆大小和垃圾回收相关参数会进行调整以达到指定值。设定此值可能会减少应用的吞吐量。
吞吐量:吞吐量为垃圾回收时间与非垃圾回收时间的比值,通过-XX:GCTimeRatio=<N>来设定,公式为1/(1+N)。例如,-XX:GCTimeRatio=19时,表示5%的时间用于垃圾回收。默认情况为99,即1%的时间用于垃圾回收。
并发收集器
可以保证大部分工作都并发进行(应用不停止),垃圾回收只暂停很少的时间,此收集器适合对响应时间要求比较高的中、大规模应用。使用-XX:+UseConcMarkSweepGC打开。
并发收集器主要减少年老代的暂停时间,他在应用不停止的情况下使用独立的垃圾回收线程,跟踪可达对象。在每个年老代垃圾回收周期中,在收集初期并发收集器 会对整个应用进行简短的暂停,在收集中还会再暂停一次。第二次暂停会比第一次稍长,在此过程中多个线程同时进行垃圾回收工作。
并发收集器使用处理器换来短暂的停顿时间。在一个N个处理器的系统上,并发收集部分使用K/N个可用处理器进行回收,一般情况下1<=K<=N/4。
在只有一个处理器的主机上使用并发收集器,设置为incremental mode模式也可获得较短的停顿时间。
浮动垃圾:由于在应用运行的同时进行垃圾回收,所以有些垃圾可能在垃圾回收进行完成时产生,这样就造成了“Floating Garbage”,这些垃圾需要在下次垃圾回收周期时才能回收掉。所以,并发收集器一般需要20%的预留空间用于这些浮动垃圾。
Concurrent Mode Failure:并发收集器在应用运行时进行收集,所以需要保证堆在垃圾回收的这段时间有足够的空间供程序使用,否则,垃圾回收还未完成,堆空间先满了。这种情况下将会发生“并发模式失败”,此时整个应用将会暂停,进行垃圾回收。
启动并发收集器:因为并发收集在应用运行时进行收集,所以必须保证收集完成之前有足够的内存空间供程序使用,否则会出现“Concurrent Mode Failure”。通过设置-XX:CMSInitiatingOccupancyFraction=<N>指定还有多少剩余堆时开始执行并发收集
小结
串行处理器:
--适用情况:数据量比较小(100M左右);单处理器下并且对响应时间无要求的应用。
--缺点:只能用于小型应用
并行处理器:
--适用情况:“对吞吐量有高要求”,多CPU、对应用响应时间无要求的中、大型应用。举例:后台处理、科学计算。
--缺点:垃圾收集过程中应用响应时间可能加长
并发处理器:
--适用情况:“对响应时间有高要求”,多CPU、对应用响应时间有较高要求的中、大型应用。举例:Web服务器/应用服务器、电信交换、集成开发环境。
发表评论
-
字符串,Volatile
2013-03-18 12:01 1121转载:http://www.ibm.com/de ... -
qian rushi
2012-12-01 10:13 0唐攀,华清远见高级研 ... -
110道 C语言 题目 超经典中的经典
2012-10-21 08:57 0... -
LOG4J
2012-08-07 10:34 1036long4j配置 转载:http://www.iteye. ... -
jpa 注解
2011-12-20 09:23 11821转:http://blog.csdn.net/gdweijin ... -
jna
2011-11-29 17:28 1527... -
eclipse设置
2011-11-16 08:45 864转:http://www.iteye.com/topic/11 ... -
深入分析 Java I/O 的工作机制
2011-11-14 08:57 888... -
java获得计算机信息
2011-10-29 13:03 1366采用singar.jar实现,需要将sigar-x86-win ... -
java内存机制
2011-10-24 13:01 1278转. Java内存机制详解 Ja ... -
缓存技术
2011-09-27 13:28 814一个培训的ppt,是介绍缓存知识的。有兴趣的可以参考:缓存技术 ... -
单点登录
2011-09-26 08:37 1596了解单点登录:: 可以使 ... -
继承和组合的关系
2011-08-18 09:17 904个人工作的感触: 首先框架的编写是难度很大,而工具 ... -
导入导出,创建databaselink
2011-08-10 15:56 2126pl/sql导出表结构和表 ... -
小结一下
2011-08-04 10:20 862觉得程序层面上是:数据类型(int long string) ... -
分析建模
2011-07-17 20:13 866系统建模与分析。 -
Java浮点数的精确计算
2011-06-27 16:10 988... -
异常系统
2011-05-31 17:19 707http://www.iteye.com/topic/7217 ... -
权限管理
2011-01-27 09:30 1331... -
jvisualvm
2011-01-11 21:09 907可以查看远程 本地的jvm 有两种方式 jmx jstatd ...
相关推荐
本文将深入探讨分代垃圾回收机制,这是一种有效的内存管理策略,它将堆内存分为年轻代(Young Generation)、老年代(Tenured Generation)和持久代(Permanent Generation),针对不同生命周期的对象采取不同的回收...
- 垃圾收集:详述了垃圾收集的基本原理、算法(如标记-清除、复制、标记-整理、分代收集等)以及GC调优策略。 - 内存分配与回收:讨论了对象在堆中的分配、存活判断和内存回收策略。 - 堆内存优化:如何通过调整...
- JVM通过不同的垃圾回收算法(如标记-清除、复制算法)来管理堆内存。 - **3.1.4 如何告诉虚拟机不再需要这块内存?** - 将引用设为`null`,让对象变为不可达,从而被垃圾回收。 - **3.1.5 将对象设为null就可以避免...
6. **JVM调优**: - 了解JVM参数,如-Xms, -Xmx, -XX:MaxHeapSize, -XX:NewRatio等的含义及作用。 - 分析和优化JVM性能,包括内存设置、GC调整、类加载器优化等。 7. **Spring框架**: - 描述Spring的核心模块,...
- **垃圾回收**:解释Java自动垃圾回收机制,探讨如何调优内存分配。 4. **集合框架** - **容器类**:包括ArrayList、LinkedList、HashSet、HashMap等,讲解它们的特点和使用场景。 - **接口与实现**:介绍List...
- 讨论JVM调优的基本思路,如JVM参数设置、性能监控工具的使用。 - 分析垃圾回收器的选型和配置,如CMS、G1、ZGC等。 - 阐述类加载机制,包括双亲委派模型和自定义类加载器。 9. **设计模式**: - 解释常见的...
- 垃圾回收与并发:探讨了垃圾回收对并发性能的影响,以及如何调整JVM参数以优化并发性能。 - 锁优化:分析了JVM对锁的优化,如自旋锁、偏向锁和轻量级锁。 10. **实战案例** - 分布式锁:介绍如何在分布式环境...
### Java宝典(第一版)知识点详述 #### 前言:聚焦Java核心知识点 本书《Java宝典》旨在帮助读者深入理解Java的核心技术,包括JVM、类加载机制、多线程处理、网络编程、非阻塞I/O(NIO)、性能优化以及安全等方面。...
2. **JVM参数调优**:指导如何设置JVM堆大小、垃圾回收策略等,以减少性能瓶颈。 3. **网络配置**:包括连接池配置、超时设置等,以提升网络通信效率。 4. **日志和监控**:建议合理的日志级别和监控策略,便于实时...
- **垃圾回收机制**:理解GC的工作原理,以及如何进行内存调优。 10. **数据库连接** - **JDBC**:讲解Java如何连接和操作数据库,包括数据库连接、SQL执行和结果集处理。 以上只是部分内容概述,实际书籍中还...
- **JVM调优**:了解垃圾收集器、内存配置以及性能监控工具,提升系统性能。 - **设计模式**:介绍常见的23种设计模式及其在Java中的应用,如单例、工厂、装饰器模式等。 - **数据结构与算法**:重点讲解在Java中...
4. 常见的JVM调优参数。 十、设计模式 设计模式是软件开发的最佳实践: 1. 介绍单例模式、工厂模式和观察者模式。 2. 在实际项目中如何应用设计模式? 准备这些面试题的同时,不要忘记在简历中突出自己的项目经验...
- 谈谈JVM性能调优,包括垃圾回收优化、类加载优化等。 6. **设计模式**: - 介绍单例模式、工厂模式、观察者模式等常见的设计模式,并给出具体实现。 - 分析何时应该使用某种设计模式,以及其优缺点。 7. **...
- 详解垃圾回收机制,包括引用类型(强引用、软引用、弱引用、虚引用)和垃圾收集算法(如标记-清除、复制、标记-压缩、分代收集)。 4. **多线程**: - 介绍Thread类和Runnable接口,创建线程的方式。 - 讨论...
8. **垃圾回收机制**:Java的自动内存管理是通过垃圾回收实现的,书中会解释垃圾回收的工作原理、各种GC算法及其调优策略。 《深入Java虚拟机》则专注于JVM内部机制,主要包括: 1. **JVM架构**:详述JVM的整体...
8. **JVM**:精通JVM调优,了解内存模型和垃圾回收机制。 9. **数据库技术**:熟练使用MySQL,擅长索引优化、主从复制和数据恢复。 **业务理解与管理** 1. **业务思维**:具备一定的业务分析和设计能力,能将企业...