`

手动调用垃圾回收方法

阅读更多
当WEB站点内存溢出时, 手动调用垃圾回收方法, 以缓解内存压力,增加分析问题的时间。  


<%@ page contentType="text/html; charset=GBK"%>
<%
		long totalMemory = Runtime.getRuntime().totalMemory();

		long freeMemory = Runtime.getRuntime().freeMemory();
		long usedMemory = totalMemory - freeMemory;
		java.text.NumberFormat format = new java.text.DecimalFormat("###,###");
		String memoryInfo="垃圾回收前,内存使用情况为:已用内存/总内存:" + format.format(usedMemory)
				+ "/" + format.format(totalMemory);
		System.out.println(memoryInfo);
		out.println("<br>");
		out.println(memoryInfo);
		out.println("<br>");

System.out.println("垃圾回收开始,时间为:"+System.currentTimeMillis());
out.println("垃圾回收开始,时间为:"+System.currentTimeMillis());
System.gc();
		 totalMemory = Runtime.getRuntime().totalMemory();

		 freeMemory = Runtime.getRuntime().freeMemory();
		 usedMemory = totalMemory - freeMemory;
         memoryInfo="垃圾回收前,内存使用情况为:已用内存/总内存:" + format.format(usedMemory)
				+ "/" + format.format(totalMemory);
		System.out.println(memoryInfo);
		out.println("<br>");
		out.println(memoryInfo);
System.out.println("垃圾回收结束,时间为:"+System.currentTimeMillis());
		out.println("<br>");
out.println("垃圾回收结束,时间为:"+System.currentTimeMillis());
%>
0
0
分享到:
评论

相关推荐

    SM2密码算法 JAVA 调用演示程序。.zip

    Java是一种高性能、跨平台的面向...自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。

    C#2005动态增删控件的内存泄露例子

    //2 移除控件之后手动调用Dispose,释放资源 是否注释掉这两处代码一共有4种组合,反复执行add,remove操作,内存泄露的情况如下表, -----------------表1----------------- //1 //2 内存泄露? 注释掉 注释掉 否 注释掉...

    C#中的IDisposable模式用法详解

    首先,对于垃圾回收而言,在C#中,托管资源的垃圾回收是通过CLR的Garbage Collection来实现的,Garbage Collection会调用堆栈上对象的析构函数完成对象的释放工作;而对于一些非托管资源,比如数据库链接对象等,...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    · 理解垃圾回收器是如何管理内存资源的 · 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、...

    【05-面向对象(下)】

    基本数据类型的包装类 •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。...函数式接口中被实现方法的第一个参数作为调用者,后面的参数全部传给该...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    · 理解垃圾回收器是如何管理内存资源的 · 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、...

    CLR.via.C#.(中文第3版)(自制详细书签)

    · 理解垃圾回收器是如何管理内存资源的 · 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    · 理解垃圾回收器是如何管理内存资源的 · 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、...

    PHP对象相互引用的内存溢出实例分析

    不过在PHP里,至少有一种情况内存不会得到自动释放,即便是手动调用 unset()。详情可考PHP官网关于内存泄露的分析:http://bugs.php.net/bug.php?id=33595。 问题症状如下: 如果两个对象之间存在着相互引用的关系,...

    超级有影响力霸气的Java面试题大全文档

    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)...

    区块链技术学习-go语言开发

    由此可以看出C/C++的应用级别是CPU和内存级别上的,而区块链是分布应用的开发,区块链考虑IO级别,GC垃圾回收,类型安全控制是区块链更多。而Go语言能够很好地完成这些并比C/C++开发更为简单直接,且Go本身也拥有良好的...

    java 面试题 总结

    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的...

    Golang 内存分配之逃逸分析

    在很多高级语言中(python/Go/java)都加上了垃圾回收机制。 golang 的内存分配之堆和栈 Go的垃圾回收,让堆和栈堆程序员保持透明。真正解放了程序员的双手,让他们可以专注于业务,“高效”地完成代码编写。把那些...

    疯狂JAVA讲义

    1.7 垃圾回收机制 20 1.8 何时开始使用IDE工具 21 学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 ...

    NET组件程序设计 第2版中文版.part3.rar )

    .NET垃圾回收 对象终结 确定性终结 第5章:版本控制 程序集版本号 程序集部署模型 程序集强名称 Visual Studio 2005和版本划分 自定义版本策略 CLR版本划分 第6章:事件 基于委托的事件 使用.NET事件 第7章:异步...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    14.1.2 为什么要使用垃圾回收器 254 14.1.3 垃圾回收器的工作机理 255 14.1.4 慎用析构器 255 14.2 资源管理 256 14.2.1 disposal方法 256 14.2.2 异常安全的disposal方法 257 14.2.3 using语句 257 14.2.4 ...

    memutils:D 对象的开销分配器、分配器感知容器和生命周期管理

    如果DebugAllocator被禁用,自动垃圾回收通过这个分配器工作,但它不会调用任何显式析构函数。 ThreadMem :该分配器针对线程本地堆分配进行了微调,并且不会由于锁定或GC上的额外压力而减慢速度。 SecureMem :当...

    ZipKit:适用于macOS和iOS的Objective-C Zip框架

    压缩包 ZipKit是一个Objective-C框架,用于在macOS和iOS应用中读写Zip存档。 它支持: 标准; 使用PKZip的zip64扩展名的文件大于4GB...该标记处的项目支持垃圾回收和手动内存管理。)Xcode项目包含三个目标:macOS框架

    MY动力 Ver 3.51 Build 正式版.rar

    在前台页面采用过程调用方法。在修改页面设计时只需要在相应位置调用设计好的过程就可以了。另外,这些过程还提供了不同的调用参数,以实现不同的效果。 2、软件栏目设定简明便捷,并采用与文章系统一样的无限级分类...

Global site tag (gtag.js) - Google Analytics