文档章节

如何释放java所耗系统内存?

 专注移动开发
发布于 2015/06/24 13:15
字数 162
阅读 7
收藏 0
点赞 0
评论 0
while ( true ){
     System.gc();
     gc次数++;
     记录本次gc后的已使用堆内存;
     if (最近 10 次的堆内存大小一样){
         //说明gc已经达到最小值了,结束
         break ;
     }
     if (gc次数>= 1000 * 1000 ){
         //达到gc最大次数,结束
         break ;
     }
}


多调用几次gc可以增加gc的权重,就好像你一直在jvm耳边说,垃圾回收垃圾回收。。。,jvm听烦了就回收了。。。


System.gc();这个是“建议”,建议而已,要懂得“建议”2个字的意思啊大哥。至于jvm到底听不听你的建议,那就是另外一码事情了。。我汗。。

本文转载自:http://www.oschina.net/question/38596_30705?sort=default&p=2#answers

共有 人打赏支持
粉丝 3
博文 46
码字总数 3793
作品 0
杭州
技术主管
JVM内存分析及导致内存溢出的不健壮代码及解决办法

转自:http://hi.baidu.com/fvsd3/blog/item/9baec09a301bdebcc9eaf4a2.html 一、JVM内存区域组成 java把内存分四种: 1、栈区(stack segment)— 由编译器自动分配释放,存放函数的参数值,...

flynewton
2010/09/11
0
0
java 大数据处理之内存溢出解决办法(一)

一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放...

为梦而来
2014/03/20
0
0
Java内存溢出的详细解决方案

一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放...

vieky
2014/12/03
0
0
Java内存溢出的详细解决方案

一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放...

闵开慧
2014/10/09
0
0
Java jvm内存调优(来自小强公开课)

Java jvm内存调优 Jdk:java开发工具包 Jre:java运行环境,运行你编写的java程序 Jvm:java虚拟机,.class文件在虚拟机上运行 如何选择合适的java虚拟机 》》》选择稳定的jdk(慎用新出的,...

32氪
06/26
0
0
Java finalize方法

《JAVA编程思想》: java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4)....

清风伴月
2017/10/22
0
0
java.lang.OutOfMemoryError: Java heap space错误及处理办

java.lang.OutOfMemoryError: Java heap space =================================================== 使用Java程序从数据库中查询大量的数据时出现异常: java.lang.OutOfMemoryError: Java ......

一枚Sir
2014/03/24
0
0
高性能JAVA代码之_内存管理

更甚者你写的代码,GC根本就回收不了,直接系统挂掉。GC是一段程序,不是智能,他只回收他认为的垃圾,而不是回收你认为的垃圾。 GC垃圾回收: Grabage Collection相信学过JAVA的人都知道这个...

风一样
2011/08/03
0
0
用 JNI 进行 Java 编程(4)

高级主题 概述 从 Java 程序内调用本机代码破坏了 Java 程序的可移植性和安全性。尽管已编译的 Java 字节码保持了很好的可移植性,但必须为您打算用来运行该应用程序的每个平台重新编译本机代...

Jerikc
2012/10/08
0
0
深入探索Java工作原理:JVM,内存回收及其他

Java语言引入了Java虚拟机,具有跨平台运行的功能,能够很好地适应各种Web应用。同时,为了提高Java语言的性能和健壮性,还引入了如垃圾回收机制等新功能,通过这些改进让Java具有其独特的工...

AlphaJay
2010/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

第17章MySQL主从配置

mysql安装总结 mysql主从准备工作: 准备两台机器,每台机器安装msyql服务,并启动mysql服务 mysql详细安装 1.首先下载二进制免编译的包,下载到/usr/local/src/目录下 2.解压压缩包 3.解压完...

Linux学习笔记
7分钟前
0
0
Redis高可用及分片集群

一、主从复制 使用异步复制 一个服务器可以有多个从服务器 从服务器也可以有自己的从服务器 复制功能不会阻塞主服务器 可以通过服务功能来上主服务器免于持久化操作,由从服务器去执行持久化...

Java大蜗牛
11分钟前
0
0
前端面试题汇总

最近在复习,准备找工作了,特此总结一下前端的相关知识。 1.获取浏览器URL中查询字符的参数: function getQuery(name){    var reg = new RegExp("(^|&)"+name+"=([^&]*)"(&|$));...

凛冬来袭
45分钟前
0
0
可持续发展的学习道路

与其要求别人,不如提升自己 内心渴望进步 经常做出改变现有模式,不断学习 寻找资源,整合资源,不断熟练这种模式 渠道很重要 先打开新世界的航路

狮子狗
50分钟前
0
0
apollox-lua开源项目 示例codepen2

今天在示例上增加了几个功能, 首先添加js array的标准库。 所有js array的方法目前都支持了。 添加查看code模式。 点击查看code可以看到生成的lua代码。默认web模式需要把标准库连接进来, ...

钟元OSS
今天
0
0
javascript性能优化之避免重复工作

javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作。第一部分可以通过代码重构完成,第二部分不做重复的...

老韭菜
今天
0
0
缓存穿透、并发和雪崩那些事

0 题记 缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本文讲解其产生原因和解决方案。 缓存穿透通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪...

Java填坑之路
今天
1
0
项目jar包管理构建工具---Maven

一、what is Maven? 我们来寻找一下官网,里面介绍了maven到底是什么?下面一句话就有讲解到:Apache Maven is a software project management and comprehension tool. Based on the conc...

一看就喷亏的小猿
今天
0
0
JVM学习手册(一):查看堆内存使用情况以及排错

平时出现内存溢出以及死锁,一般处理方式都是查看日志,找到抛出异常的代码行,然后本地分析代码,但是这样对于线上排查十分糟糕,这段时间在研究JVM发现了几个比较好的工具和指令. 1.针对频繁GC和...

勤奋的蚂蚁
今天
1
0
17.TCP:传输控制协议

介绍 TCP和UDP使用同一网络层(IP),但TCP提供了面向连接、可靠的传输层服务 TCP传输给IP层的信息单位称为报文段或段 TCP通过如下方式保证可靠性: 应用数据被分割成TCP认为最合适发送的数据...

loda0128
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部