当前位置: 首页 > news >正文

论坛网站建设推广优化代理注册公司注意什么

论坛网站建设推广优化,代理注册公司注意什么,怎么查icp备案号,玉林网站seo1 内存溢出 1.1 概念 java.lang.OutOfMemoryError#xff0c;是指程序在申请内存时#xff0c;没有足够的内存空间供其使用#xff0c;出现OutOfMemoryError。产生该错误的原因主要包括#xff1a;JVM内存过小。程序不严密#xff0c;产生了过多的垃圾。 程序体现: 内…1 内存溢出 1.1  概念 java.lang.OutOfMemoryError是指程序在申请内存时没有足够的内存空间供其使用出现OutOfMemoryError。产生该错误的原因主要包括JVM内存过小。程序不严密产生了过多的垃圾。 程序体现: 内存中加载的数据量过于庞大如一次从数据库取出过多数据。Cglib 不断创建新类大量 JSP 或动态产生 JSP 文件的应用集合类中有对对象的引用使用完后未清空使得JVM不能回收。代码中存在死循环或循环产生过多重复的对象实体。使用的第三方软件中的BUG。启动参数内存值设定的过小。 错误提示 tomcat:java.lang.OutOfMemoryError: PermGen spacetomcat:java.lang.OutOfMemoryError: Java heap spaceweblogic:Root cause of ServletException java.lang.OutOfMemoryErrorresin:java.lang.OutOfMemoryErrorjava:java.lang.OutOfMemoryError 1.2 解决办法 增加JVM的内存大小。具体可参考jvm之内存调优_jvm内存调优-CSDN博客优化程序释放垃圾。主要思路就是避免程序体现上出现的情况。避免死循环防止一次载入太多的数据提高程序健壮型及时释放。因此从根本上解决Java内存溢出的唯一方法就是修改程序及时地释放没用的对象释放内存空间。 1.3 内存溢出排查 内存溢出的排查过程通常包括以下几个步骤 1.3.1 检查JVM崩溃日志 当JVM发生崩溃时会生成相应的错误日志文件如hs_err_pid.log。这些日志文件包含了堆栈信息、线程状态和系统信息。通过在JVM启动时设置-XX:ErrorFile参数可以将错误日志输出到指定的文件中。 1.3.2 代码审查 仔细检查新上线的代码寻找可能导致内存溢出的潜在问题如死循环、慢SQL或大数据量查询等。 1.3.3 内存溢出dump文件分析 在JVM参数中设置XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath以便在内存溢出时生成dump文件。这些文件的名称通常是xxx.hprof。之后可以使用 Eclipse Memory Analyzer MAT对这些dump文件进行分析和诊断。 1.3.4 内存泄露分析 在MAT中打开dump文件并进入“Leak Suspects”选项卡。在这里你可以看到可能引起内存泄露的问题以及它们占用的内存大小。进一步的分析可以帮助定位问题的根源。 以实际案例为例如果在一个Java应用中观察到大量dubbo线程阻塞并且JVM堆内存的老年代和新生代都达到了高负载那么很可能是发生了内存溢出。在上述案例中日志显示老年代几乎满了而年轻代由于无法接收老年代的对象而导致频繁的Young GC最终导致了堆内存溢出。此外通过对dump文件的分析可以找到具体的内存泄露点从而确定问题的根本原因。 2 内存泄漏 Memory Leak是指程序在申请内存后无法释放已申请的内存空间一次内存泄露危害可以忽略但内存泄露堆积后果很严重无论多少内存迟早会被占光。 在Java中内存泄漏就是存在一些被分配的对象这些对象有下面两个特点 首先这些对象是可达的即在有向图中存在通路可以与其相连其次这些对象是无用的即程序以后不会再使用这些对象。 如果对象满足这两个条件这些对象就可以判定为Java中的内存泄漏这些对象不会被GC所回收然而它却占用内存。对于内存泄露的处理页就是提高程序的健壮型因为内存泄露是纯代码层面的问题。 2.1 泄漏分类 经常发生发生内存泄露的代码会被多次执行每次执行泄露一块内存偶然发生在某些特定情况下才会发生一次性发生内存泄露的方法只会执行一次隐式泄露一直占着内存不释放直到执行结束严格的说这个不算内存泄露因为最终释放掉了但是如果执行时间特别长也可能会导致内存耗尽。 2.2 导致内存泄漏的常见原因 循环过多或者死循环导致产生了大量对象静态集合类引起的内存泄漏因为静态集合类的生命周期和JVM是一致的。单例模式 如果单例对象引用了外部对象会导致该外部对象一直不回被回收。因为单例的的静态属性会让对象的生命周期和JVM一致。变量的不合理作用域如下 public class UsingRandom {        private String msg;public void receiveMsg(){readFromNet();// 从网络中接受数据保存到msg中saveDB();// 把msg保存到数据库中} } //如上面这个伪代码通过readFromNet方法把接受的消息保存在变量msg中然后调用saveDB方法把msg的内容保存到数据库中此时msg已经就没用了由于msg的生命周期与对象的生命周期相同此时msg还不能回收因此造成了内存泄漏。 //实际上这个msg变量可以放在receiveMsg方法内部当方法使用完那么msg的生命周期也就结束此时就可以回收了。还有一种方法在使用完msg后把msg设置为null这样垃圾回收器也会回收msg的内存空间。 数据连接 像IOsocket连接他们必须被显示的close掉否则不回被GC回收。内部类对象被外部对象长期持久会导致外部类也无法被回收哈希值改变 当一个对象被存储进HashSet集合中以后就不能修改这个对象中的那些参与计算哈希值的字段了。因为当修改后所得的哈希值与最初存储进HashSet集合中时的哈希值就不同了。在这种情况下即使用contains()方法也将返回找不到对象的结果但是HashSet却一直持有修改前的对象的实例导致不能被GC造成内存泄露。监听器和回调 在Java语言中 往往呢会使用到监听器 一个应用可能会使用到多个监听器。 比如说 在我们Java Web中有底层的网络监听器listener 监听器的作用就是去监听指定的类或者对象他产生的行为 从而做出对应的响应 因为监听器往往都是全局存在的 如果对于监听器中所使用这些对象或者是变量 你没有有效的控制的话 很容易产生内存泄露 。缓存 内存泄漏的另一个常见来源是缓存。举个例子我们有时候为了减少与db的交互次数会将查询出的对象实例放入缓存中但是常常会忘记对这个缓存进行管理。比如忘记限制缓存大小。 对于这个问题可以使用WeakHashMap代表缓存此种Map的特点是当除了自身有对key的引用外此key没有其他引用那么此map会自动丢弃此值。 2.3 内存泄漏排查 2.3.1 查看JVM状态 1查看虚拟机进程找到需要监控的进程ID 使用 jps ps 找到对应的进程ID jpsjps -l psps -aux | grep java 2使用 jstat实时的查看一下当前程序的资源和性能。 命令 jstat -gcutil 进程ID 1000 //每1000毫秒查询一次一直查。gcutil的意思是已使用空间站总空间的百分比。 执行结果 2.3.2 定位问题 2.3.2.1 dump文件分析 1使用 jmap查看存活对象并生成dump文件。 jmap命令格式 jmap [ option ] vmid 使用命令如下 jmap -histo:live 28558| head -20  //查看示Java堆中存活对象的统计信息包括对象数量、占用内存大小(单位字节)和类的完全限定名 生成heap dump文件 jmap -dump:live,formatb,fileheap.hprof 3514   2Java heap分析工具 Ecplise用MAT插件Idea安装Jprofiler进行分析堆Dump可视化分析在线工具 https://heaphero.io/ 3JVM调优常用工具  JVM调优的在线网站_java 堆分析网址-CSDN博客
http://www.ho-use.cn/article/10821131.html

相关文章:

  • 宝坻区建设路小学网站网站建设绩效目标
  • 音响网站模板网站外部链接建设分析
  • 登陆网站空间的后台网页版微信聊天记录会留在电脑里吗
  • 网站开发技术与应用试验报告4应用开发需要学什么
  • 做网站需要什么证件吗外链官网
  • 上海哪些做网站信息流广告怎么投放
  • 响应式网站建设有利于seo网站建设的学习方法
  • dw个人网站制作教程交互式网站是什么
  • 网站编辑建设用ssh做的网站
  • 晚上奖励自己的网站推荐网站建设背景资料
  • 网站托管服务适用于哪种类型的网站搜狗网站提交
  • 外贸网站源码下载公司官网怎样制作
  • 长沙网站建设+个人浦东新区网站推广公司
  • 上海心橙科技网站建设个人如何制作网站源码
  • 想给孩子找点题做 都有什么网站给wordpress网站做ssl卸载
  • 商业网站建设规划范文电脑dw怎么制作网页
  • 北京住房建设官方网站手机网站 后台
  • 做网站业务的怎么找资源如何做介绍一门课程的网站
  • 网站建设行业增长率flash 网站头部
  • cms网站开发网站模板房地产网站 模板
  • 莒县网站建设网推地推
  • 沈阳做网站建设学软件开发需要多少钱
  • 茌平网站建设费用网站建设 应酷
  • 红河做网站的公司花溪网站建设
  • 门户网站广告的特点有杭州做商业地产开什么网站好
  • 天津网站建设价格云主机如何建网站
  • wordpress 改端口东莞seo排名优化
  • 网站的备案号在哪网页版微信登录入口手机
  • php网站开发软件语言海淀教育互动平台网站建设
  • 速贝cms建站系统alexa排名什么意思