首页 > 其他分享 >GC测试

GC测试

时间:2022-12-17 14:44:47浏览次数:35  
标签:GC survivor 新生代 gc 测试 new import

基于SpringBoot来开发接口并编译运行

代码

UserController类

package com.wjq.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.LinkedList;
import java.util.List;

@RestController
public class UserController {
    @RequestMapping("/user")
    public void getUser() {
        List<User> list = new LinkedList<>();
        // 堆上分配1G
        for (int i = 0; i < 1024; i++) {
            list.add(new User());
        }
        // 延迟1s
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

User类

package com.wjq.demo;

public class User {
    private String s = new String(new byte[1024 * 1024]);
}

生成jar包并运行

java -jar demo-0.0.1-SNAPSHOT.jar

GC分析

触发GC

# 安装ab命令
yum install -y httpd-tools
# 发送10万次请求,每次请求大概消耗1G内存
ab -n 100000 http://localhost:8080/user

常用命令

# 打印所有的参数列表
java -XX:+PrintFlagsInitial
# 打印堆栈信息
jstack pid
# 打印进程的启动参数和JVM参数
jinfo pid
# 查找占用内存多的大对象
jmap -histo pid | head -n 20

详细分析

打印不同分代的内存使用情况
每次间隔1s,查看1万次,19295是Java进程id

jstat -gc 19295 1000 10000

S0C:新生代中第1个survivor的容量
S1C:新生代中第2个survivor的容量
S0U:新生代中第1个survivor已使用空间
S1U:新生代中第2个survivor已使用空间
EC:新生代中Eden的容量
EU:新生代中Eden已使用空间
OC:老年代的容量
OU:老年代已使用空间
MC:方法区容量
MU:方法区已使用空间
CCSC:压缩类容量
CCSU:压缩类已使用空间
YGC:新生代中gc次数
YGCT:新生代中gc时间
FGC:老年代gc次数
FGCT:老年代gc时间
GCT:gc总时间
空间单位是kb,时间单位是秒。

标签:GC,survivor,新生代,gc,测试,new,import
From: https://www.cnblogs.com/WJQ2017/p/16988972.html

相关文章

  • Vulnhub之ReconForce靶机详细测试过程
    ReconForce作者:jason_huawen靶机基本信息名称:ReconForce(v1.1)地址:https://www.vulnhub.com/entry/hacknos-reconforce-v11,416/识别目标主机IP地址──(kali㉿ka......
  • Selenium21--验证码测试
    验证码简介有些网站需要验证码通过后方可进入网页,目的很简单,就是区分是自然人访问还是计算机程序访问。验证码:简称为captcha一种随机生成的信息(数字、字母、汉字、......
  • 测试按项目流程阶段划分
    按软件项目流程可划分为单元测试、集成测试、系统测试和验收测试四类测试。(1)单元测试UnitTesting是指对软件中的最小可测试单元进行检查和验证。其中单元测......
  • 利用IBERT IP核实现GTX收发器硬件误码率测试实例
    利用IBERTIP核实现GTX收发器硬件误码率测试实例1. 引言Vivado中提供了1种IBERT工具用于对XilinxFPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT我们可以获取误码......
  • 功能测试用例的编写思路及流程
    功能测试用例的编写需要按照一定的思路进行,而不是想到哪写到哪,一般测试机制成熟的公司都会有公司自己自定义的测试用例模板,以及一整套的测试流程关注点,测试人员在测试......
  • Android开发实战一之搭建开发环境-附测试实例(已亲测)
    使用JDK、AndroidSDK、Eclipse+ADT搭建开发环境   附测试实例  (已亲测)---------------------------------------------------------------------------------......
  • GMP,GC
    GMP以及简单GC后续会补上GC的实现原理2022.12.1623点12分gc查看functest(){ //slice会动态扩容,用slice来做堆内存申请 container:=make([]int,8) log.Prin......
  • pytest + yaml 框架 -16.提供一个常用的内置函数和方法生成随机测试数据
    前言在测试的过程中经常会用到一些随机值,比如生成随机手机号,随机身份证,姓名等数据。内置方法目前暂时提供了3个内置函数,和1个内置对象current_time(f:str='%Y-%m-%......
  • EasyPytest测试平台开发日志之系统设计
    EasyPytest测试平台,帮你高效管理Pytest测试用例。EP平台的定位是Pytest测试用例管理平台,80%的自动化用例开发在PyCharm等专业的IDE中进行,20%的用例调度和结果查看就交给E......
  • 发送邮件测试
    #_*_coding:utf-8_*_#Author:nan#edittime:2022/12/1517:05#name:tools.py#Product:PyCharmimportsmtplibimportemailfromemail.mime.textimpor......