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

现在用什么cms做网站好/中文域名交易网站

现在用什么cms做网站好,中文域名交易网站,做worksheet的网站,ui培训班排行榜作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实!

阶段1、深入多线程

阶段2、深入多线程设计模式

阶段3、深入juc源码解析

阶段4、深入jdk其余源码解析

阶段5、深入jvm源码解析

一、简介

上一章,我们已经进行了一次Young GC日志的分析,本章我们继续结合代码示例做实验,来看看对象是如何从新生代进入老年代的。我们之前讲过新生代对象晋升到老年代的几种场景:

  • 躲过15次GC
  • 符合动态年龄判断规则
  • Young GC后存活对象放不进Survivor
  • 大对象直接进入老年代

本章,我们通过示例代码模拟最常见的一种场景——Young GC后存活对象放不进Survivor。

1.1 JVM内存参数

我们的示例程序基于JDK1.8,JVM参数如下:
-XX:NewSize=10485760 -XX:MaxNewSize=10485760 -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:PretenureSizeThreshold=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log

上述给新生代分配了10MB空间,老年代也是10MB,参数注意两点:

  • -XX:PretenureSizeThreshold=10485760:超过10MB的大对象直接进入老年代
  • -XX:MaxTenuringThreshold=15:对象年龄到达15时进入老年代

二、示例程序

2.1 程序源码

示例程序代码如下:

    public class Demo1 {public static void main(String[] args) {byte[] array1 = new byte[2 * 1024 * 1024];array1 = new byte[2 * 1024 * 1024];array1 = new byte[2 * 1024 * 1024];byte[] array2 = new byte[128 * 1024];array2 = null;byte[] array3 = new byte[2 * 1024 * 1024];}}

2.2 JVM内存模型

我们根据上述代码来分析下内存中的对象分配。首先连续创建了三个2MB的数组对象,将array1指向最后一个数组对象,然后创建了一个128KB的数组,将array2赋null:

注意,Eden区里会有一些“未知对象”,根据模拟Young GC一文中的分析,对象大小在500KB左右,我们后续会通过工具分析这些“未知对象”到底是什么。

然后,执行代码byte[] array3 = new byte[2 * 1024 * 1024],希望在Eden区继续创建一个2MB的数组。显然,Eden区的空间不足了,此时就会触发Young GC。

2.3 程序执行

我们执行程序,得到以下GC日志:

    0.352: [GC (Allocation Failure) 0.353: [ParNew: 8106K->623K(9216K), 0.0021991 secs] 8106K->2673K(19456K), 0.0033689 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] Heappar new generation   total 9216K, used 2837K [0x00000000fec00000, 0x00000000ff600000, 0x00000000ff600000)eden space 8192K,  27% used [0x00000000fec00000, 0x00000000fee297c0, 0x00000000ff400000)from space 1024K,  60% used [0x00000000ff500000, 0x00000000ff59be50, 0x00000000ff600000)to   space 1024K,   0% used [0x00000000ff400000, 0x00000000ff400000, 0x00000000ff500000)concurrent mark-sweep generation total 10240K, used 2050K [0x00000000ff600000, 0x0000000100000000, 0x0000000100000000)Metaspace       used 3147K, capacity 4496K, committed 4864K, reserved 1056768Kclass space    used 343K, capacity 388K, committed 512K, reserved 1048576K

三、日志分析

我们先来看下日志中的下面这行,这是本次GC情况的概要说明:

    0.352: [GC (Allocation Failure) 0.353: [ParNew: 8106K->623K(9216K), 0.0021991 secs] 8106K->2673K(19456K), 0.0033689 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

ParNew: 8106K->623K(9216K): 可以看到,本次Young GC后,新生代只剩下了623KB(未知对象)。但是明明array1还引用着一个2MB的数组:

我们注意下Survivor的大小,只有1MB,是容纳不下2MB数组和未知对象的。根据“Young GC后存活对象放不进Survivor会进入老年代”规则,ParNew会将2MB数组转移到老年代,未知对象转移到Survivor:

通过观察GC日志,也印证了这一点:
from space 1024K, 60% used: Survivor中有600多KB的数据,就是未知对象;
concurrent mark-sweep generation total 10240K, used 2050K: 老年代中的2MB对象就是array3引用的数组对象。

四、总结

本章通过GC日志分析了一种新生代对象进入老年代的示例,即Young GC后存活对象放不进Survivor,则会进行老年代。
需要注意的是,并不是所有存活对象都会进入老年代,可能会有部分对象留在Survivor区,部分对象进入老年代。

相关文章:

JVM实战(17)——模拟对象晋升

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…...

帆软笔记-决策表报对象使用(两表格联动)

效果描述如下: 数据库中有个聚合商表,和一个储能表,储能属于聚合商,桩表中有个字段是所属聚合商。 要求帆软有2个表格,点击某个聚合商,展示指定的储能数据。 操作: 帆软选中表格单元&#xf…...

DataGear专业版 1.0.0 发布,数据可视化分析平台

DataGear专业版 1.0.0 正式发布,欢迎大家试用! http://datagear.tech/pro/ DataGear专业版 基于 开源版 开发,新增了诸多企业级特性,包括: MySQL、PostgreSQL、Oracle、SQL Server以及更多兼容部署数据库支持OAuth2…...

AS,android SDK

android sdk中包含什么? Android平台工具(Android Platform Tools): 这包括 adb(Android Debug Bridge)等工具,用于在计算机和 Android 设备之间进行通信、调试和数据传输。 Android命令行工具…...

LeetCode第155题 - 最小栈

题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例: 输入: [&q…...

Java微服务系列之 ShardingSphere - ShardingSphere-JDBC

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项…...

Unity中URP下实现能量罩(外发光)

文章目录 前言一、实现菲涅尔效果1、求 N ⃗ \vec{N} N 2、求 V ⃗ \vec{V} V 3、得出菲涅尔效果4、得出菲涅尔相反效果5、增加菲涅尔颜色二、能量罩 交接处高亮 和 外发光效果结合1、修改混合模式,使能量罩透明2、限制 0 ≤ H i g h L i g h t C o l o r ≤ 1 0\leq HighL…...

Golang 中哪些类型可以作为 map 类型的 key?

目录 可以作为 map 键的类型 不能作为 map 键的类型 最佳实践 小结 在 Go 语言中,map 是一种内置的关联数据结构类型,由一组无序的键值对组成,每个键都是唯一的,并与一个对应的值相关联。本文将详细介绍哪些类型的变量可以作为…...

C# 导出EXCEL 和 导入

使用winfrom简单做个界面 选择导出路径 XLSX起名字 打开导出是XLSX文件 // 创建Excel应用程序对象Excel.Application excelApp new Excel.Application();excelApp.Visible false;// 创建工作簿Excel.Workbook workbook excelApp.Workbooks.Add(Type.Missing);Excel.Works…...

学网络必懂的华为CSS堆叠技术

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…...

SV-7041T 30W网络有源音箱校园教室广播音箱,商场广播音箱,会议广播音箱,酒店广播音箱,工厂办公室广播音箱

SV-7041T 30W网络有源音箱 校园教室广播音箱,商场广播音箱,会议广播音箱,酒店广播音箱,工厂办公室广播音箱 SV-7041T是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱,具有10/100M以太网接口,可将…...

Could NOT find Threads (missing: Threads_FOUND)

具体错误 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for…...

1114: 逆序(数组)

题目描述 输入n&#xff08;1<n<10&#xff09;和n个整数&#xff0c;逆序输出这n个整数。 输入 输入n&#xff08;1<n<10&#xff09;&#xff0c;然后输入n个整数。 输出 逆序输出这n个整数&#xff0c;每个整数占4列&#xff0c;右对齐。 样例输入 6 4 5…...

uniapp如何调用ANDROID原生函数

在 UniApp 中调用 Android 原生函数&#xff0c;通常需要使用 UniApp 的插件系统。以下是调用 Android 原生函数的一般步骤&#xff1a; 安装插件&#xff1a;首先&#xff0c;确保你已经安装了对应的插件。你可以在 UniApp 插件市场 中搜索并安装你需要的插件。对于 Android 原…...

python 字符串的详细处理方法

当前版本&#xff1a; Python 3.8.4 简介 字符串是由字符组成的序列&#xff0c;可以用单引号、双引号或三引号&#xff08;单引号或双引号的连续使用&#xff09;括起来。一般用来表示和处理文本信息&#xff0c;可以是字母、数字、标点符号以及其他特殊字符&#xff0c;用于…...

蓝桥杯AcWing学习笔记 8-2数论的学习(下)

蓝桥杯 我的AcWing 题目及图片来自蓝桥杯C AB组辅导课 数论&#xff08;下&#xff09; 蓝桥杯省赛中考的数论不是很多&#xff0c;这里讲几个蓝桥杯常考的知识点。 约数个数定理 我们如何去求一个数的约数个数呢&#xff1f; N N N分解质因数的结果&#xff1a; N P 1 α…...

vcs makefile

主要参考&#xff1a; VCS使用Makefile教程_vcs makefile-CSDN博客https://blog.csdn.net/weixin_45243340/article/details/129255218?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170524049516800227431373%2522%252C%2522scm%2522%253A%252220140713.1301023…...

《Training language models to follow instructions》论文解读--训练语言模型遵循人类反馈的指令

目录 1摘要 2介绍 方法及实验细节 3.1高层次方法论 3.2数据集 3.3任务 3.4人体数据收集 3.5模型 3.6评价 4 结果 4.1 API分布结果 4.2公共NLP数据集的结果 4.3定性结果 问题 1.什么是rm分数 更多资料 1摘要 使语言模型更大并不能使它们更好地遵循用户的意图。例…...

Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client

看过上期的都知道&#xff0c;我是搞java的&#xff0c;所以对这些可能理解不是很清楚&#xff0c;各位看完可以尽情发言。 事件循环和非阻塞IO 在服务器端网络编程中&#xff0c;有三种处理并发连接的方法。 它们是:分叉、多线程和事件循环。分叉为每个客户端连接创建新…...

QT上位机开发(动画效果)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 不管是仿真&#xff0c;还是对真实环境的一比一模拟&#xff0c;动画都是非常好的一种呈现方式。目前在qt上面&#xff0c;实现动画主要有两种方法…...

手写实现 bind 函数

Function.prototype.myBind function(context) {if (typeof this ! function) {return}const args [...arguments].slice(1)const fn thisreturn function Fn() {// 判断函数作为构造函数的情况&#xff0c;这个时候需要传入当前的函数的this给apply调用&#xff0c;其余情况…...

安卓Android Studio读写MifareOne M1 IC卡源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c-s.w4002-21818769070.11.3d2f789eOUPJBK <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…...

一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

背景 上篇介绍了文件读写框架设计与实现&#xff0c;同时顺便说明了本地磁盘存储模式的实现模式。 今天来说下基于文件读写框架&#xff0c;如何集成对象存储组件minio&#xff0c;集成之前&#xff0c;需要对minio进行必要的了解&#xff0c;本篇是minio的技术预研。 minio简…...

Native.js是什么

Native.js 是一个开源项目&#xff0c;旨在通过 JavaScript 调用原生 Android API。它的目标是让 JavaScript 开发者能够使用 Android 原生 API&#xff0c;从而在不编写原生代码的情况下构建 Android 应用。 使用 Native.js&#xff0c;开发者可以使用 JavaScript 调用 Andro…...

Vant-ui图片懒加载

核心代码 在你的全局顶部引入和初始化 Vue.use(vant.Lazyload, {loading: /StaticFile/img/jiazai.jpg,error: /StaticFile/img/jiazai.jpg,lazyComponent: false, });//图片懒加载 <img v-lazy"https://img-blog.csdnimg.cn/direct/3d2c8a7e2c0040488a8128c3e381d58…...

创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件

在intellij idea中&#xff0c;通过插件EasyCodeMybatisCodeHelperPro&#xff0c;从现有的模板文件中选择一个复制粘贴&#xff0c;然后稍为修改&#xff0c;即可得到一个合适的模板文件。 现在的前端&#xff0c;越来越像后端。TypeScript替代了JavaScript&#xff0c;引入了…...

华为端口安全常用3种方法配置案例

安全动态mac地址学习功能 [Huawei]int g0/0/01 interface GigabitEthernet0/0/1 port-security enable //开启安全 port-security max-mac-num 2 //最多为2个mac地址学习 port-security protect-action restrict //丢包带警告 port-security aging-time 1 //mac地址的老化时间…...

RH850P1X芯片学习笔记-Flash Memory

文章目录 FeaturesClock Supply Block DiagramFlash SizeMemory ConfigurationRegistersRegister Base AddressList of RegistersRegister Reset Condition 与Flash Memory相关的操作模式Functional OverviewOption BytesOPBT0 — Option Byte 0OPBT1 — Option Byte 1OPBT2 —…...

利用XSS漏洞打cookie

目录 1、为什么要打cookie&#xff1f; 2、怎样利用XSS来打cookie&#xff1f; 3、利用Bluelotus_xssReceiver平台来打cookie 4、利用beef-xss平台来打cookie 上一篇给大家介绍了xss漏洞的基础知识&#xff0c;在本篇章将会介绍和演示一下利用xss漏洞打cookie的演示&#x…...

用java写个redis工具类

下面是一个简单的Redis工具类的示例&#xff0c;使用Java语言编写&#xff1a; import redis.clients.jedis.Jedis;public class RedisUtils {private static Jedis jedis;public static void connect(String host, int port) {jedis new Jedis(host, port);}public static v…...