来源:杭州达内IT培训学校
时间:2023/9/7 11:17:29
达内教育目前开设Java,JAVA大数据,软件测试,Python,室内设计,UI设计,网页设计,Linux云计算,Web前端,VR,影视后期,新媒体运营,淘宝美工,网络营销,电商等课程,为IT企业提供全面的人才服务,并为全行业提供应用型人才
达内Java工程师课程
适合学员:基础差、没有经验、转型的小白。
课程内容:Java语言基础和面向对象编程、JavaAPI、Web全栈和数据库技术、JavaEE、SSM、SpringBoot框架技术、数据结构、经典算法。
达内教育专注Java培训十余年
十余年培训经验
从2002年开始办学到现在,已经有10+年的Java培训教学经验,实战经验丰富,效果理想。获得学员们和业界的好评。
雄厚师资力量
高薪聘请讲师团队,他们分别来自企业技术经理,总监,均是业界人物,教学质量信得过,实战经验都是7年+的水平。
课程实时更新
课程内容实时更新,融合时下前沿技术热点不断升级,一定让学员学到前沿的新技术,拒绝陈旧的技术,培养高技术人才。
项目实战教学
项目实战教学,解决开发者“缺少经验”的劣势,让你面试的时候游刃有余,不再为没有经验找工作而感到发愁!
既然你已经知道你的程序有内存泄漏,那么当泄漏成为问题时,你可以使用这些工具来帮助修复泄漏——较好是在泄漏成为问题之前。
使用可以检测内存泄漏的工具
对于我们的下一个例子,我们将使用VisualVM。
下载并配置VisualVM后,通过运行附加了VisualVM的应用程序来分析你的代码。当执行降低应用程序速度的任务时,VisualVM会查看“监视器”和“内存池”选项卡。你需要注意什么?当你在Monitor选项卡中看到内存使用高峰时,按下“PerformGC”按钮,这将激活垃圾收集。这应该有助于减少使用的内存量。
如果这不起作用,切换到“内存池”并查看旧的Gen部分。如果有物体泄漏,你会在这里看到。请记住,活动对象被放置在“伊甸园”,然后将被移动到“幸存者”。同时,在“老一代”池中发现较老的对象。
在这一点上,你可以回到你的代码并注释掉不相关的部分,直到你注意到有性能下降或停止的地方。重复所有这些步骤,直到消除所有泄漏。
启用代码的某些部分来检查内存使用情况,如果你发现另一个泄漏,进入导致这些泄漏的方法来帮助堵塞它。继续缩小范围,直到只剩下一个类或方法。验证所有文件缓冲区,看它们是否关闭。另外,检查所有的散列表,看看你是否正确地使用了它们。
使用堆转储
如果你觉得上面提到的方法太单调乏味,你可以通过使用堆转储来减少修复内存泄漏所花费的时间。堆转储允许你查看打开的实例数量以及这些实例占用了多少空间。如果你想进一步调查某个特定的实例,只需双击该特定的实例就可以看到更多信息。堆转储帮助你了解应用程序生成了多少对象。
使用Eclipse内存泄漏警告
另一种节省时间的方法是依靠Eclipse内存泄漏警告。如果你有符合JDK1.5或更高版本的代码,你可以使用Eclipse在引用结束但对象持续存在且未关闭时发出警告。请确保在项目设置中启用泄漏检测。
请注意,使用Eclipse可能不是一个全面的解决方案。Eclipse不能检测所有的泄漏,可能会遗漏一些文件闭包,尤其是当你的代码不符合JDK1.5(或更高版本)时。Eclipse不总是工作的另一个原因是因为这些文件的关闭和打开嵌套得非常深。
总结
内存泄漏当然是Java开发人员的一个担忧,但它们并不总是世界末日。用专业知识武装自己,在问题发生之前就加以预防,并在问题出现时加以解决。
版权所有:搜学搜课(www.soxsok.com)