电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

EAS性能调优之客户端闪退

来源:金蝶云社区作者:金蝶2024-09-226

EAS性能调优之客户端闪退

      在本篇文章中,我们聊一聊,EAS客户端在使用过程中,遇到了客户端突然“闪退”,是咋回事?

      其实,这是由于客户端,在某个时刻的内存占用超过了预设的Java虚拟机允许的最大内存导致的。在EAS客户端的启用过程中,我们会给客户端设置一些Java虚拟机的启动参数,如下图所示:

 -Xms JVM启动时,堆内存分配的最小空间。一般是建议配置和-Xmx保持一致,这样可以避免堆内存空间不足时,重新申请分配内存空间。

 -Xmx JVM启动时,堆内存分配的最大空间。当某一时刻客户端内存消耗超过了这个值,客户端就会抛出OutOfMemory的错误,造成客户端闪退。

-XX:MaxPermSizeJVM运行时,允许分配的最大持久代内存空间。持久代的概念主要是针对商用Java虚拟机Hotspot 而言,对其它虚拟机比如J9,JRockit,其实是没有这个概念的。所以这个参数,也仅仅是针对JDK8以下的Hotspot虚拟机而言。而从JDK8开始,Hotspot虚拟机也借鉴了堆外空间(元数据空间)来替代它。它一般主要用于存放加载的类信息、常量、静态变量、以及即时编译后的代码缓存等信息。

     而为了分析客户端闪退的原因,我们通常需要获取到客户端闪退时,Java虚拟机的堆转存储dump文件,用于分析当时内存占用的情况。从而分析出,内存泄露的原因。这里一般有三种方式:


      其一:给Java虚拟机添加启动参数(也就是在上图中-Xmx的位置,通过空格分隔),让客户端闪退时,自动在指定的目录下(例如: D:\\dump)创建dump文件。参数如下:

        -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/dump


      其二:在客户端运行的过程中,通过JDK自带的命令手工获取dump文件。如下所示:

      >jps –l    --获取机器上运行的JVM进程号jvmid

      >jmap –dump:[live],format=b,file=d:\heap.hrof  jvmid      --jmap命令手工获取dump文件


     其三:借助于工具比如 memory an

EAS性能调优之客户端闪退

在本篇文章中,我们聊一聊,EAS客户端在使用过程中,遇到了客户端突然“闪退”,是咋回事? 其实,这是由于客户端,在某...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信