首页 > 修改教程 > gg修改器显示游戏崩溃_gg修改器游戏崩溃了怎么办
gg修改器显示游戏崩溃_gg修改器游戏崩溃了怎么办
  • gg修改器最新版
  • 大小:8.13MB版本:v1.03
  • 语言:简体中文系统:Android
绿色无毒,安全可靠!部分设备误报拦截请通过!

gg修改器显示游戏崩溃_gg修改器游戏崩溃了怎么办

作者:佚名 来源:网友分享 日期:2024-04-20 19:23:24

大家好,今天小编为大家分享关于gg修改器显示游戏崩溃_gg修改器游戏崩溃了怎么办的内容,赶快来一起来看看吧。

监视工具

JConsole

JConsole 图形用户界面是一种符合 Java 管理扩展 (JMX) 规范的监视工具。JConsole 使用 Java 虚拟机 (Java VM) 的广泛检测来提供有关在 Java 平台上运行的应用程序的性能和资源消耗的信息。

使用方法

本地

获取java PID的方法:通过任务管理器查看、通过Java提供的jps命令查看。

远程

使用jsconsole hostName:portNum命令:hostName是运行应用程序的系统的名称,portNum是您在启动 Java VM 时启用 JMX 代理时指定的端口号。

使用service:jmx:<protocol>:<sap>命令:使用 JMX 服务 URL 进行连接。

内容分析

将 JConsole 连接到应用程序后,JConsole 由六个选项卡组成。

组成部分

概览

显示有关 CPU 使用情况、内存使用情况、线程计数和在 Java VM 中加载的类的图形监视信息。

提供有关内存消耗和内存池的信息。

提供执行GC的操作,可以随时点击按钮进行垃圾回收

堆和非堆内存

Java VM 管理两种类型的内存:堆内存和非堆内存,这两种内存都是在 Java VM 启动时创建的。

内存池和内存管理器

内存池和内存管理器是 Java VM 内存系统的关键方面。

垃圾回收

垃圾回收 (GC) 是 Java VM 释放不再引用的对象占用的内存的方式。通常认为具有活动引用为”活动”且未引用(或无法访问)对象的对象为”已死”。垃圾回收是释放死对象使用的内存的过程。GC 使用的算法和参数对性能有显著影响。

Java hotspot VM 垃圾回收器使用代数 GC。生成 GC 利用大多数程序符合以下概括的观察。

线程

提供有关线程使用的信息。

显示有关类加载的信息。

VM 概要

提供有关 Java VM 的信息。

MBean

以通用方式显示有关在平台 MBean 服务器注册的所有 MBeans 的信息。MBeans 选项卡允许您访问平台 MXBean 检测的完整集,包括在其他选项卡中不可见的仪器。此外,您还可以使用 MBeans 选项卡监视和管理应用程序的 MBeans。

jps

列出目标系统上已检测的 Java 虚拟机 (JVM)。

jstat

监视 Java 虚拟机 (JVM) 统计信息。

对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。

命令格式

jstat [-option] [PID]

option参数

1.jstat –class <pid> : 显示加载class的数量,及所占空间等信息。

2.jstat -compiler <pid>显示VM实时编译的数量等信息。

3.jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时间。

4.jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小

5.jstat -gcutil <pid>:统计gc信息

6.jstat -gcnew <pid>:年轻代对象的信息。

7.jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。

8.jstat -gcold <pid>:old代对象的信息。

9.jstat -gcoldcapacity <pid>: old代对象的信息及其占用量。

10.jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。

11.jstat -pilation <pid>:当前VM执行的信息。

jstatd

监视 Java 虚拟机 (JVM),并使远程监视工具能够连接到 JVM

命令格式

jstatd -[option]

option

使用方法

1.在jdk的bin目录下创建文件jstatd.all.policy

2.写入下面的安全配置

grant codebase "file:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/lib/tools.jar" {
permission java.security.AllPermission;
};
#此处写绝对路径,主要是防止路径错误问题,排查问题,应该写成相对路径

3.启动jstatd

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=x.x.x.x &

4.使用jvisualvm工具远程连接,进行监控

jvisualvm

VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的).

同时他还提供很多插件可以自己安装,是一款不错的监控分析工具。

故障排除工具

JInfo

可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息

命令格式

参数说明

option

Javacore 概述

Javacore,也可以称为“threaddump”或是“javadump”,它是 Java 提供的一种诊断特性,能够提供一份可读的当前运行的 JVM 中线程使用情况的快照。即在某个特定时刻,JVM 中有哪些线程在运行,每个线程执行到哪一个类,哪一个方法。应用程序如果出现不可恢复的错误或是内存泄露,就会自动触发 Javacore 的生成。

使用方法

1.jinfo pid:输出当前 jvm 进程的全部参数和系统属性

2.jinfo -flag name pid:输出对应名称的参数使用该命令,可以查看指定的 jvm 参数的值。如:查看当前 jvm 进程是否开启打印 GC 日志。

3.jinfo -flag [+|-]name pid:开启或者关闭对应名称的参数

使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数。尤其在线上的环境特别有用。

4.jinfo -flag name=value pid:修改指定参数的值。

注意:jinfo虽然可以在java程序运行时动态地修改虚拟机参数,但并不是所有的参数都支持动态修改

5.jinfo -flags pid:输出全部的参数

6.jinfo -sysprops pid:输出当前 jvm 进行的全部的系统属性

jhat

主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。

1.使用jmap命令导出堆文件

jmap -dump:live,file=a.log pid

也可以使用下面方式导出堆文件

1、使用 jconsole 选项通过 HotSpotDiagnosticMXBean 从运行时获得堆转储(生成dump文件)、

2、虚拟机启动时如果指定了 -XX:+HeapDumpOnOutOfMemoryError 选项, 则在抛出 OutOfMemoryError 时, 会自动执行堆转储。

3、使用 hprof 命令

2.使用jhat分析堆文件

jhat -J-Xmx512M a1.log

3.查看分析的html页面

http://ip:7000/jhat中的OQL(对象查询语言)

如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可以在jhat的html页面中执行OQL,来查询符合条件的对象

基本语法:

select <javascript expression to select>
[from [instanceof] <class name> <identifier>]
[where <javascript boolean expression to filter>]

解释:

(1)class name是java类的完全限定名,如:java.lang.String, java.util.ArrayList, C是char数组, java.io.File是java.io.File[]

(2)类的完全限定名不足以唯一的辨识一个类,因为不同的ClassLoader载入的相同的类,它们在jvm中是不同类型的

(3)instanceof表示也查询某一个类的子类,如果不明确instanceof,则只精确查询class name指定的类

(4)from和where子句都是可选的

(5)java域表示:obj.field_name;java数组表示:array[index]

举例:

(1)查询长度大于100的字符串

select s from java.lang.String s where s.count > 100

(2)查询长度大于256的数组

select a from [I a where a.length > 256

(3)显示匹配某一正则表达式的字符串

select a.value.toString() from java.lang.String s where /java/(s.value.toString())

(4)显示所有文件对象的文件路径

select file.path.value.toString() from java.io.File file

(5)显示所有ClassLoader的类名

select classof(cl).name from instanceof java.lang.ClassLoader cl

(6)通过引用查询对象

select o from instanceof 0xd404d404 o

built-in对象 — heap

(1)heap.findClass(class name) — 找到类

select heap.findClass("java.lang.String").superclass

(2)heap.findObject(object id) — 找到对象

select heap.findObject("0xd404d404")

(3)heap.classes — 所有类的枚举

select heap.classes

(4)heap.objects — 所有对象的枚举

select heap.objects("java.lang.String")

(5)heap.finalizables — 等待垃圾收集的java对象的枚举

(6)heap.livepaths — 某一对象存活路径

select heaplivepaths(s) from java.lang.String s

(7)heap.roots — 堆根集的枚举

辨识对象的函数

(1)classof(class name) — 返回java对象的类对象

select classof(cl).name from instanceof java.lang.ClassLoader cl

(2)identical(object1,object2) — 返回是否两个对象是同一个实例

select identical(heap.findClass("java.lang.String").name, heap.findClass("java.lang.String").name)

(3)objectid(object) — 返回对象的id

select objectid(s) from java.lang.String s

(4)reachables — 返回可从对象可到达的对象

select reachables(p) from java.util.Properties p -- 查询从Properties对象可到达的对象
select reachables(u, "java.net.URL.handler") from java.net.URL u -- 查询从URL对象可到达的对象,但不包括从URL.handler可到达的对象

(5)referrers(object) — 返回引用某一对象的对象

select referrers(s) from java.lang.String s where s.count > 100

(6)referees(object) — 返回某一对象引用的对象

select referees(s) from java.lang.String s where s.count > 100

(7)refers(object1,object2) — 返回是否第一个对象引用第二个对象

select refers(heap.findObject("0xd4d4d4d4"),heap.findObject("0xe4e4e4e4"))

(8)root(object) — 返回是否对象是根集的成员

select root(heap.findObject("0xd4d4d4d4"))

(9)sizeof(object) — 返回对象的大小

select sizeof(o) from [I o

(10)toHtml(object) — 返回对象的html格式

select "<b>" + toHtml(o) + "</b>" from java.lang.Object o

(11)选择多值

select {name:t.name?t.name.toString():"null",thread:t} from instanceof java.lang.Thread t

数组、迭代器等函数

(1)concat(enumeration1,enumeration2) — 将数组或枚举进行连接

select concat(referrers(p),referrers(p)) from java.util.Properties p

(2)contains(array, expression) — 数组中元素是否满足某表达式

select p from java.util.Properties where contains(referres(p), "classof(it).name == ’java.lang.Class’")

返回由java.lang.Class引用的java.util.Properties对象

(3)count(array, expression) — 满足某一条件的元素的数量

select count(heap.classes(), "/java.io./(it.name)")

(4)filter(array, expression) — 过滤出满足某一条件的元素

select filter(heap.classes(), "/java.io./(it.name)")

(5)length(array) — 返回数组长度

select length(heap.classes())

(6)map(array,expression) — 根据表达式对数组中的元素进行转换映射

select map(heap.classes(),"index + ’-->’ + toHtml(it)")

(7)max(array,expression) — 最大值, min(array,expression)

select max(heap.objects("java.lang.String"),"lhs.count>rhs.count")

(8)sort(array,expression) — 排序

select sort(heap.objects(’[C’),’sizeof(lhs)-sizeof(rhs)’)

(9)sum(array,expression) — 求和

select sum(heap.objects(’[C’),’sizeof(it)’)

(10)toArray(array) — 返回数组

(11)unique(array) — 唯一化数组

jmap

打印进程、核心文件或远程调试服务器的共享对象内存映射或堆内存详细信息。

jmap [option] <pid>
(to connect to running process) 连接到正在运行的进程

jmap [option] <executable <core>
(to connect to a core file) 连接到核心文件

jmap [option] [server_id@]<remote server IP or hostname>
(to connect to remote debug server) 连接到远程调试服务

option

使用方法

  1. jmap -dump:[live,]format=b,file=<filename> PID :使用hprof二进制形式,输出jvm的heap内容到文件
  2. jmap -finalizerinfo PID:打印正等候回收的对象的信息
  3. jmap -heap PID:打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆内存的使用情况。
  4. jmap -histo:live PID:打印每个class的实例数目,内存占用,类全名信息。VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
  5. jmap -permstat PID:打印classload和jvm heap长久层的信息. 包含每个classloader的名字、活泼性、地址、父classloader和加载的class数量。另外,内部String的数量和占用内存数也会打印出来。
  6. -F 强迫.在pid没有相应的时候使用-dump或者-histo参数。在这个模式下,live子参数无效。
  7. -h | -help 打印辅助信息
  8. -J 传递参数给jmap启动的jvm.

jstack

jstack命令主要用于调试java程序运行过程中的线程堆栈信息,可以用于检测死锁,进程耗用cpu过高报警问题的排查。jstack命令会打印出所有的线程,包括用户自己启动的线程和jvm后台线程。

命令格式

jstack -[option] pid

option

以上就是关于gg修改器显示游戏崩溃_gg修改器游戏崩溃了怎么办的全部内容,希望对大家有帮助。

相关文章

热门下载

大家还在搜