如何使用jmeter做接口测试,如何使用JMP对不同X分组进行标记

jmap使用说明书的目录

一. jamp的作用

二.语法和说明

三.例示

一. jamp的作用

角色:监视内存中的Java对象

二.语法和说明

语法:

jmap [option] pid

说明:

选项:命令选项。 常见的选项包括:

-heap :打印Java堆摘要信息,包括使用的GC算法、堆配置参数和世代间的堆内存使用量;

– histo [ : live ] :打印Java堆中的对象直方图。 可以从这张图中获取每个class的对象数量、占用的内存大小和类名信息。 携带:live时,只计算活着的对象。

-permstat打印永久统计信息;

-finalizerinfo打印等待回收的对象信息

-dump:dump-options以hprof二进制格式将Java堆信息输出到文件。 可以使用MAT、VisualVM或jhat等工具查看此文件。

最佳选项:

演唱会只输出活着的对象; 如果不指定,则打印堆中的所有对象

format=b将输出格式指定为二进制

file=file指定文件名和文件的保存位置。 例如jmap -dump:live,format=b,file=D:\heap.bin pid

-F与-dump:dump-options pid或-histopid一起使用,如果pid没有响应,则强制执行; 注意:不支持实时子选项

pid :进程id

三.例示

有两种方法可以获取step1:进程的id,并在此处获取eclipse的pid。

方法1 )单击任务管理器——中的详细信息,显示eclipse进程的pid,如下图所示。

方法2 )单击Win R,键入cmd,在该页面中键入jps,还会获得Eclipse进程的pid,如下图所示

step2:然后输入表达式。

-heap、cmd执行以下命令,将输出的结果导入output.txt文件,便于分析,如下图所示。

输出结果:

Attaching to process ID 8124, please wait . debuggerattachedsuccessfully.clientcompilerdetected.jvmversionis 25.131-b 11 using thread-localobjectalloctatatallllocation

-XX:MinHeapFreeRatio设置JVM堆最小空闲比率defalut 40) MaxHeapFreeRatio = 70 //对应jvm启动参数 -XX:MaxHeapFreeRatio设置JVM堆最大空闲比率default 70) MaxHeapSize = 1073741824 1024.0MB) //对应jvm启动参数-XX:MaxHeapSize=设置JVM堆的最大大小 NewSize = 1048576 1.0MB) //对应jvm启动参数-XX:NewSize=设置JVM堆的‘wxdwl代’的默认大小 MaxNewSize = 643825664 614.0MB)//对应jvm启动参数-XX:MaxNewSize=设置JVM堆的‘wxdwl代’的最大大小 OldSize = 4194304 4.0MB)//对应jvm启动参数-XX:OldSize=<value>:设置JVM堆的‘老生代’的大小 NewRatio = 2//对应jvm启动参数-XX:NewRatio=:‘wxdwl代’和‘老生代’的大小比率 SurvivorRatio = 8//对应jvm启动参数-XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值 //从这里可以看出JDK8开始,永久代已经被元空间所取代 MetaspaceSize = 12582912 12.0MB)对应jvm启动参数-XX:MetaspaceSize=<value>:设置JVM堆的‘元空间’的初始大小 CompressedClassSpaceSize = 1073741824 1024.0MB) MaxMetaspaceSize = 4294901760 4095.9375MB)//对应jvm启动参数-XX:MaxMetaspaceSize= :设置JVM堆的‘元空间’的最大大小 G1HeapRegionSize = 1048576 1.0MB)Heap Usage://堆内存分布 G1 Heap: regions = 1024 capacity = 1073741824 1024.0MB) used = 99890608 95.26310729980469MB) free = 973851216 928.7368927001953MB) 9.303037822246552% usedG1 Young Generation://wxdwl代的内存分布Eden Space://Eden区内存分布 regions = 9 capacity = 142606336 136.0MB) //Eden区总容量 used = 9437184 9.0MB) //Eden区已使用 free = 133169152 127.0MB) //Eden区剩余容量 6.617647058823529% used used //Eden区使用比率 Survivor Space: //其中一个Survivor区的内存分布 regions = 14 capacity = 14680064 14.0MB) used = 14680064 14.0MB) free = 0 0.0MB) 100.0% usedG1 Old Generation://老年代的内存分布 regions = 74 capacity = 111149056 106.0MB) used = 75773360 72.26310729980469MB) free = 35375696 33.73689270019531MB) 68.1727427356648% used60745 interned Strings occupying 5993360 bytes.

     ②-histo,在cmd中执行如下命令,将输出的结果导入到output.txt文件中,便于分析,如下图所示:

    输出部分结果如下:

    class name列出现了[C、[B、[L等很奇怪的内容,这些属于非自定义类,具体为:

BaseType Character

Type

Interpretation

B

byte

signed byte

C

char

Unicode character

D

double

double-precision floating-point value

F

float

single-precision floating-point value

I

int

integer

J

long

long integer

L;

reference

an instance of class

S

short

signed short

Z

boolean

true or false

[

reference

one array dimension

             

             

             

                    

                    

                   

 

 

 

 

 

   -permstat 打印永久代统计信息:如下图所示,由于使用jdk是1.8,jdk1.8已经删除了永久代,取而代之的是wxdwl代,因此无法无法得到永     久代的信息

   那又如何得到元空间里面的信息呢?,如下图所示

    jstat -gc <pid> :Metaspace的信息会被打印出来,如下面的例子所示:

  ③-finalizerinfo,在cmd中执行如下命令,将输出的结果导入到output.txt文件中,便于分析,如下图所示:

Attaching to process ID 8124, please wait…Debugger attached successfully.Client compiler detected.JVM version is 25.131-b11Number of objects pending for finalization: 0 //说明当前F-QUEUE队列中并没有等待Fializer线程执行finalizer方法的对象

  ④-dump:<dump-options>,在cmd中执行如下命令,

  输出结果如下:

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注