您现在的位置是:首页 > 正文

由于Full GC频繁造成服务器频繁重新启动

2024-02-29 12:14:13阅读 0

最近的一个java项目中,由于经常出现Full GC的状况,最终导致服务器重新启动,影响到实际的业务。

最后详细查了程序的代码,有两个原因造成这个现象。


1、分页的时候,使用了不好的方法,导致生成很大的对象。

      比如  customer.list.size()   全体数据取出后生成对象

                customer.counter()   直接counter,而不用取出全体的数据


2、大数据量的全体取出,其实只是要其中的几条数据而已

      使用检索条件进行数据的取出。



**Full GC**

请参照: http://blog.csdn.net/xinwang/article/details/11720845

**垃圾回收**


GC(Garbage Collection):JAVA/.NET中的垃圾收集器。Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。而C#又借鉴了JAVA。
在老式的C/C++程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间。在C/C++中,释放无用变量内存空间的事情需要由程序员自己来处理。就是说当程序员认为变量没用了,就手动地释放其占用的内存。但是这样显然非常繁琐,如果有所遗漏,就可能造成资源浪费甚至内存泄露。当软件系统比较复杂,变量多的时候程序员往往就忘记释放内存或者在不该释放的时候释放内存了。
有了GC,程序员就不需要再手动的去控制内存的释放。当Java虚拟机(VM)或.NETCLR发觉内存资源紧张的时候,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间(这里的说法略显粗略,事实上何时清理内存是个复杂的策略)。如果需要,可以在程序中显式地使用System.gc() / System.GC.Collect()来强制进行一次立即的内存清理。Java提供的GC功能可以自动监测对象是否超过了作用域,从而达到自动回收内存的目的,Java的GC会自动进行管理,调用方法:System.gc() 或者Runtime.getRuntime().gc();

网站文章

  • YApi中时间参数设置

    YApi中时间参数设置

    1.在用例的时间参数设置项点击编辑按钮 2.选择mock数据,检索@now,选中后表达式和预览项中出现数据信息,点击插入按钮 3.对时间参数进行手动编辑,将{{ @now }}改为{{ @now(‘month’) }},接口请示时的时间我当前月的第一天的时间 也可设置其他时间 @now(‘year’) “2019-01-01 00:00:00” ...

    2024-02-29 12:14:06
  • Charles Https配置

    Charles Https配置

    1、电脑端下载证书,网址https://www.charlesproxy.com/assets/legacy-ssl/charles.crt 2、电脑端安装证书,Help-->SSL proxy...

    2024-02-29 12:13:36
  • 初学者如何快速入门Python(内附详细攻略),一文讲清

    初学者如何快速入门Python(内附详细攻略),一文讲清

    那专业不是计算机,或者没接触过Python该怎么办? 别害怕,跟着我走,成不了大神(你没看错),但是入门能做项目,你也可以!

    2024-02-29 12:13:28
  • 2020面试准备之并发进阶

    2020面试准备之并发进阶

    文章目录说一说自己对于 synchronized 关键字的了解说说自己是怎么使用 synchronized 关键字,在项目中用到了吗讲一下 synchronized 关键字的底层原理说说 JDK1.6...

    2024-02-29 12:13:21
  • 比开源技术更重要的,可能是开源治理!

    比开源技术更重要的,可能是开源治理!

    PART ONE引言互联网IT技术发展至今,流传广泛的架构图可谓成千上万,但真正称得上整个互联网的底层基石的,或许只有唯一的“LAMP架构”——Linux操作系统、Apache服务器、My...

    2024-02-29 12:12:53
  • 【MySQL】深入理解MySQL索引底层数据结构与算法

    索引是帮助MySQL高效获取数据的的。排好序这三个字其实就是对索引最好的形容和体现。我们可以简单把索引比喻成为书本的目录页,当然这么说太过于抽象,并没有把索引的底层特性说明白,下面我们将依次分析这些数据结构,来说明索引究竟是什么?!

    2024-02-29 12:12:46
  • Python趣味课程:果果饮料店新品鉴赏

    今天翻了之前的python面向对象的基础案例,发现一个很有趣的需求。差不多涵盖了面向对象的所有知识点。先记录一下。需求:题目:品尝饮料1. 当输入 咖啡时,控制台显示:咖啡:苦2. 如果没有该种饮料,控制台显示: 对不起!没有您输入的饮料类型。推荐实现步骤:1、建立一个python类Drink,应当做如下:a、声明一个方法taste(),该方法负责输出饮料的...

    2024-02-29 12:12:10
  • c语言实现指定路径文件读取_Windows下读取盘符中的所有文件及路径(读取NTFS下的USN日志文件)...

    c语言实现指定路径文件读取_Windows下读取盘符中的所有文件及路径(读取NTFS下的USN日志文件)...

    由于所做的课题需要得到电脑中的所有文件,并且需要像everything一样能对文件进行搜索归类,所以我就去研究了一下everything的原理,其中,everything是通过读取usn文件来获取整个...

    2024-02-29 12:12:04
  • Java百炼成仙1.1 他叫叶小凡

    哈喽,大家好,我是剽悍一小兔~我之前写了一本《JavaScript百炼成仙》深受读者朋友们的喜爱,为了答谢各位粉丝朋友,从即日起我开始正式更新之前呼声最高的《Java百炼成仙》。故事流程上《Java百...

    2024-02-29 12:11:55
  • Java实训报告----计算图形的周长和面积(保姆级,完整版)

    结课项目需求 运用所学的知识,设计计算图形面积和周长的系统,要求用到对象和类,构造方法,继承,抽象类(或接口)和多态。实现如下功能: 根据菜单提示选择要计算的图像类型。 输入矩形的长和宽,计算矩形的面...

    2024-02-29 12:11:49