System.gc();

运行垃圾收集器。

调用gc方法表明,Java虚拟机将花费更多精力来回收未使用的对象,以使它们当前占用的内存可用于快速重用。当控件从方法调用返回时,Java虚拟机将尽最大努力从所有丢弃的对象中回收空间。

不建议。

编辑:我在2009年写了原始回复。现在是2015年。

在Java诞生的20多年来,垃圾收集器一直在稳步改善。此时,如果您要手动调用垃圾收集器,则可能需要考虑其他方法:

如果你强迫机器上数量有限GC,它可能是值得拥有的负载均衡点远从目前的机器,等待它完成投放到连接的客户端,超时一段时间后悬挂的连接,然后就硬-重新启动JVM。这是一个糟糕的解决方案,但是如果您正在查看System.gc(),则强制重启可能是一个权宜之计。

考虑使用其他垃圾收集器。例如,(过去六年中的新产品)G1收集器是一种低暂停时间模型;它总体上使用更多的CPU,但最好不要强迫执行硬停止。由于服务器CPU现在几乎都具有多个内核,因此这是一个非常不错的选择。

查看调整内存使用情况的标志。尤其是在Java的较新版本中,如果没有那么多长期运行的对象,请考虑增加堆中newgen的大小。newgen(年轻)是分配新对象的位置。对于Web服务器,为请求创建的所有内容都放在此处,如果此空间太小,Java将花费额外的时间将对象升级到寿命更长的内存,在这些内存中销毁它们的代价更高。(如果newgen太小,您将为此付出代价。)例如,在G1中:

XX:G1NewSizePercent(默认为5;可能没有关系。)

XX:G1MaxNewSizePercent(默认为60;可能会提高它。)

考虑告诉垃圾收集器您暂停较长时间后还不满意。这将导致更频繁的GC运行,以使系统保持其余约束。在G1中:

XX:MaxGCPauseMillis(默认为200。)

java内存释放_如何释放Java中的内存?相关推荐

  1. 全面理解java内存模型_深入理解Java内存模型(八)——总结

    处理器内存模型 顺序一致性内存模型是一个理论参考模型,JVM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照.JVM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序 ...

  2. java cpu监控_如何在Java中监视计算机的CPU,内存和磁盘使用情况?

    问题 我想用Java监视以下系统信息: 当前CPU使用率**(百分比) 可用内存*(免费/总计) 可用磁盘空间(空闲/总计)*请注意,我的意思是整个系统可用的总内存,而不仅仅是JVM. 我正在寻找一种 ...

  3. java 代码 内存泄露_如何用Java编写一段代码引发内存泄露

    Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有,好囧. A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中) ...

  4. java 内存空间_怎样用java实现存储空间动态分配

    1.java是如何管理内存的 Java的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象 ...

  5. java在线编译器_什么是Java内存模型

    在知识星球中,有个小伙伴提了一个问题:有一个关于JVM名词定义的问题,说"JVM内存模型",有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机 ...

  6. unity如何检测内存泄漏_如何排查Java内存泄漏?看懂这一篇就够用了

    原文:https://www.toptal.com/java/hunting-memory-leaks-in-java 作者:Jose Ferreirade Souza Filho 译者:Emma来源 ...

  7. java 解决死锁_如何解决java中的死锁问题

    一.死锁的定义 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去. 那么我们换一个更加规范的定义:集合中的每一个进程都在 ...

  8. java方法区内存泄露_深入理解java虚拟机-第二章:java内存区域与内存泄露异常...

    2.1概述: java将内存的管理(主要是回收工作),交由jvm管理,确实很省事,但是一点jvm因内存出现问题,排查起来将会很困难,为了能够成为独当一面的大牛呢,自然要了解vm是怎么去使用内存的. 2 ...

  9. java线程内存模型_深度解析Java多线程的内存模型

    内部java内存模型 硬件层面的内存模型 Java内存模型和硬件内存模型的联系 共享对象的可见性 资源竞速 Java内存模型很好的说明了JVM是如何在内存里工作的,JVM可以理解为java执行的一个操 ...

  10. java 线程 原子性_深入理解Java多线程与并发框架——Java内存模型与原子性、可见性、有序性...

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享!Java架构筑基​zhuanlan.zhihu.comJava架构筑基--专注于Java技术的研究与分享! 后续文章将首 ...

最新文章

  1. java 4d_GitHub - wm3445/Java-concurrency at 4d10ae51a9deec37340fc40d03f205cfbe8de43b
  2. 一种简单快捷的 java 热部署方式
  3. vant组件搜索并选择_Vue.js自定义弹层组件|vue仿微信/ios弹窗
  4. tensorflow 图像教程 の TF Layers 教程:构建卷积神经网络
  5. 计算机二级办公软件aoa 百度云,计算机二级办公 考生注意事项(二级AOA)
  6. WordPress Restful API registration to Kyma WordPress API注册到Kyma的实现原理
  7. 解决scrollViewDidScroll do not work的方法
  8. as3:sprite作为容器使用时,最好不要指定width,height
  9. bzoj1562 [NOI2009]变换序列
  10. (转)GitHub 被微软收购后的 52 天,改版并放弃了 jQuery!
  11. 换个skin,换个心情
  12. android 粒子编辑器,libgdx游戏引擎开发笔记(五)粒子编辑器的使用
  13. QT技巧系列(5)按时间顺序列出目录下所有的文件名
  14. 2023华中农业大学计算机考研信息汇总
  15. Outlook2019添加126邮箱方法
  16. 田野调查手记·浮山篇(一)
  17. 石膏板建筑材料英国UKCA认证—EN 520
  18. html 点击选择变色,css实现选中后变色并且效果不消失
  19. clannad手游汉化版_clannad游戏中文版
  20. 10亿个IP地址排序、10亿年龄排序

热门文章

  1. 数据库双机热备实战总结
  2. 最新精美壁纸:2013年4月份桌面壁纸下载
  3. webservice Connection timed out
  4. 在Tableau中, 如何将‘Abc’隐藏
  5. 央视315让AI主播预热,人类主播会失业吗?
  6. java abstract 变量_Java基础知识详解:abstract修饰符
  7. TinyPinYin的使用
  8. MySQL中Explain用法详解
  9. 王濛挂帅再获佳绩 西部精英赛包揽男女全能前三
  10. P3628 [APIO2010]特别行动队(斜率优化DP)