GC 知识点补充——CMS】的更多相关文章

之前已经讲过了不少有关 GC 的内容,今天准备将之前没有细讲的部分进行补充,首先要提到的就是垃圾收集器. 基础的回收方式有三种:清除.压缩.复制,衍生出来的垃圾收集器有: Serial 收集器 新生代收集器,使用停止复制算法,使用一个线程进行 GC ,串行,其它工作线程暂停. 使用-XX:+UseSerialGC开关来控制使用Serial + Serial Old模式运行进行内存回收(这也是虚拟机在 Client 模式下运行的默认值). ParNew 收集器 新生代收集器,使用停止复制算法,Se…
1. swagger知识点补充 1.1. 概述 在swagger的使用过程中,除了网上常见的例子,还会有很多细节上的东西需要注意和改写,这里我列几点我使用过程中遇到的问题和改进方式 1.2. 知识点 1.2.1. 模型例子 我们在进行POST的请求的时候,尤其是增加一条数据,我们往往会有很多字段是不需要我们手动填写的,比如逻辑删除,创建时间,修改时间等等,我的需求就是再swagger界面的Example中不显示这些字段 实现方式 1.2.2. 判空 如上图所示,这不是swagger知识点,这里顺…
set集合,深浅拷⻉以及部分知识点补充内容:1. 基础数据类型补充2. set集合3. 深浅拷⻉主要内容: ⼀. 基础数据类型补充⾸先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的⾃⼰看⼀看就可以了.我们补充给⼀个字符串基本操作li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"]s = "_".join(li)print(s)li = "⻩花⼤闺⼥"s…
Django 知识点补充 1 Django如何在Model保存前做一定的固定操作,比如写一条日志 (1)利用Django的Model的Signal Dispatcher, 通过django.db.models.signals.pre_save()方法,在事件发生前,发射触发信号, (1) 信号.connect(执行的函数) import logging from django.db import models from django.db.models.signals import pre_sa…
知识点补充 一.浏览器的兼容问题(关于浏览器的兼容问题 有很多大佬已经解释的很清楚了 这个得自己百度去多花点时间去了解 这里咱们只说一下前面的漏点) 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题. 在网站的设计和制作中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示.而对于浏览器软件的开发和设计,浏览器对标准的 更好兼容能够给用户更好的使用体验. 二.background-position ,雪碧图 为什么使用…
目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 6. 函数 python day4 元组/字典/集合类知识点补充 (学习资源来自老男孩教育) 2019/10/7 1. 元组tuple知识点补充 创建和转换 t = (11,22,33) t = tuple(iterable),比如tuple([11,22,33]) 元组的特性 元组的特性:元组的元…
python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数. 所谓物理行(Physical Line)是你在编写程序时 你所看到 的内容.所谓逻辑行(Logical Line)是 Python 所看到 的单个语句.Python 会假定每一 物理行 会对应一个 逻辑行. 希望在一行物理行中指定多行逻辑行,那么你必须通过使用分号( ; )来明确表明逻辑 行或语…
#java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍历二维数组 1. 增强的for循环实现二维数组的遍历 for (int[] arr : ns) { for (int n : arr) { System.out.print(n + ","); } System.out.println(); } 2. 使用Arrays.deepToStri…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: <disruptor笔记>系列链接 快速入门 Disruptor类分析 环形队列的基础操作(不用Disruptor类) 事件消费知识点小结 事件消费实战 常见场景 等待策略 知识点补充(终篇) 本篇概览 本文是<disruptor笔记>系列的终篇,前面咱们看了那么多代码,也写了那…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: <Jaeger实战(Java版)>系列全文 <分布式调用链跟踪工具Jaeger?两分钟极速体验> <Jaeger开发入门(java版)> <Java应用日志如何与Jaeger的trace关联> <Jaeger的客户端采样配置> <极简!一…
学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候...我们总不能在外部程序中内嵌很多的SQL语句吧...那样执行的效率不高,并且也不容易维护...因此存储过程将我们的操作进行封装,当我们需要对其进行操…
CMS收集器 Concurrent Markup Sweep 并发标记清除 使用了标记-清除算法 与标记-压缩相比,并发阶段会降低吞吐量 算法作用在老年代以及永久区(新生代使用ParNew) -XX:+UseConcMarkSweepGCCMS运行过程 1.初始标记(用户线程停止)  根可以关联到的对象  速度快 2.并发标记(和用户线程一起)  主要标记过程,标记全部对象 3.重新标记(用户线程停止)  由于并发标记时,用户线程依然进行因此在正式清理前,再做修正. 4.并发清除(和用户线程一起…
一 对前面知识点的补充 1.str中的join()方法是将列表转换成字符串 lst = ["韩雪","赵丽颖","黄渤","李连杰"] print("_".join(lst)) # 韩雪_赵丽颖_黄渤_李连杰 将每个元素用_进行拼接 s = "马化腾" print("-".join(s)) # 马-化-腾 2.把字符串转换成列表  用split() ss = &quo…
本节的主要内容: 基础数据类型补充 set集合 深浅拷贝 主要内容: 一.基础数据类型补充 字符串: li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_".join(li) print(s) # 李嘉诚_麻花藤_黄海峰_刘嘉玲 可以看出 join() 的作用是把列表中的字符串拼接起来,正好和 split() 相反 字符串转化成列表: split() 列表转化成字符串:join(…
1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. 循环列表. 删除原列表, 字典中的数据 4. fromkeys() 不会对原来的字典产生影响. 产生新字典(神坑, 考试) 5. set集合. 不重复, 无序. 6. 想转换成什么.就用什么括起来 7. 深浅拷贝 1. 直接赋值. 两个变量指向同一个对象. 2. 浅拷贝:只拷贝第一层内容. copy…
GCRoots:        虚拟机栈(栈帧中的局部变量表)引用的对象       方法区中静态属性引用的对象       方法去中常量引用的对象       本地方法栈中JNI(NATIVE方法)引用的对象   引用: reference类型数据中存储着另外一块地址的起始地址       强引用:通常的引用,只要引用存在便不会被回收       软引用:有用但非必需的对象,在内存将要发生内存溢出异常时,会将这些对象列入范围,进行二次回收.       弱引用:非必需对象,只能生存到下次回收之…
CMS详解 https://www.cnblogs.com/ggjucheng/p/3977612.html CMS默认不回收Perm, 需要加参数 +CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled gc: cms有个缺点是容易产生内存碎片, 需要设置压缩重排. 老年代太小时并发收集器找不到连续的空间,此时会转成单线程的标记清除 -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压…
之前已经讲过了不少有关 JVM 的内容,今天准备将之前没有细讲的部分进行补充,比如:永久代和元空间. 永久代 Java 的内存中有一块称之为方法区的部分,在 JDK8 之前, Hotspot 虚拟机中的实现方式为永久代(Permanent Generation),别的JVM都没有这个东西. 在过去(当自定义类加载器使用不普遍的时候),类几乎是"静态的"并且很少被卸载和回收,因此类也可以被看成"永久的".另外由于类作为 JVM 实现的一部分,它们不由程序来创建,因为它…
简称 STW -- Stop the World,暂停所有在执行的线程 简史 2004年Sun实验室第一次发表G1论文 JDK6U14中第一次作为实验选项引入 JDK7中开始作为替换CMS的方案 JDK9中成为默认的垃圾回收器 JDK10优化,将其fullGC改为并行: JEP307 JDK11引入了更新的ZGC,可能会成为G1的潜在替代者 G1特有数据结构和算法 Region 堆仍然有新生代(eden.survivor).老年代的划分,但是不再要求它们是内存连续的.每个区都由多个Region组…
本文将BBS+Blog项目开发中所需要的细节知识点进行补充,其中内容包括KindEditor编辑器的使用,BeautifulSoup 模块及其防XSS攻击,Django中admin管理工具的使用,media配置之MEDIA_ROOT,FBV和CBV之间的关系,Django模块之Meta选项详解,HTML中submit和button的区别等七大内容. 一:KindEditor编辑器的使用 富文本编辑器,Rich Text Editor,简称RTE,是一种可内嵌于浏览器,所见即所得的文本编辑器. 富…
常见GC算法 在C/C++中是由程序员自己去申请.管理和释放内存的,因此没有GC的概念.而在Java中,专门有一个用于垃圾回收的后台线程来进行监控.扫描,自动将一些无用的内存进行释放.下面介绍几种常见的GC算法. 引用计数法 Reference Counting 给对象添加一个引用计数器,每过一个引用计数器值就+1,少一个引用就-1.当它的引用变为0时,该对象就不能再被使用.它的实现简单,但是不能解决互相循环引用的问题. 根搜索算法 GC Roots Tracing 以一系列叫“GC Roots…
一:对之前知识点的补充 1;字符串(str)中的join方法.把列表转换成字符串 2;列表list[ ]和字典dic{ }在循环过程中不能字节删除.需要把要删除的内容记录在新列表中.然后在循环新列表,删除字典或列表 3;fromkeys( ) 返回新字典,对原字典没有影响 后面的value,是多个key共享一个value 二:set集合 特点: 无序,不重复,元素必须可哈希(不可变) 作用: 去重复 本身是可变的数据类型, 有增删改查操作 frozenset( ) 冻结的集合,可哈希 ,不可变.…
根据日志,确实发生了FullGC,计算资源被耗光 Java HotSpot(TM) 64-Bit Server VM (24.79-b02) for windows-amd64 JRE (1.7.0_79-b15), built on Apr 10 2015 12:36:16 by "java_re" with unknown MS VC++:1600 Memory: 4k page, physical 8297976k(4972260k free), swap 16594112k(1…
修改Tomcat的jvm的垃圾回收GC方式 cp $TOMCAT_HOME/bin/catalina.sh $TOMCAT_HOME/bin/catalina.sh.bak_20170815 vi $TOMCAT_HOME/bin/catalina.sh vi catalina.sh if [ -z "$JSSE_OPTS" ] ; then JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048" fi JVM_OPTS=&quo…
目录: 1.基础数据类型补充 2.set集合 3.深浅拷贝 一,基础数据类型补充 字符串的基本操作 li = ["李李嘉诚", "麻花藤", "⻩黄海海峰", "刘嘉玲"] s = "_".join(li) print(s) li = "⻩黄花⼤大闺⼥女女" s = "_".join(li) print(s) 列表: 循环删除列表总的每一个元素 li = [11, 2…
系列文章传送门: Java多线程学习(二)synchronized关键字(1) Java多线程学习(二)synchronized关键字(2) Java多线程学习(三)volatile关键字 Java多线程学习(四)等待/通知(wait/notify)机制 系列文章将被优先更新于微信公众号"Java面试通关手册",欢迎广大Java程序员和爱好技术的人员关注. 本节思维导图: 思维导图源文件+思维导图软件关注微信公众号:"Java面试通关手册" 回复关键字:"…
本节主要内容: 1. is和==的区别2. 编码的问题 ⼀. is和==的区别1. id()通过id()我们可以查看到⼀个变量表⽰的值在内存中的地址 注  ----<<<在python中,命令⾏代码和py⽂件中的代码运⾏的效果可能是不⼀样的 >>>  说了这么多. 这个id()和is有什么关系呢. 注意. is⽐较的就是id()计算出来的结果. 由于id是帮我们查看某数据(对象) 的内存地址. 那么is⽐较的就是数据(对象)的内存地址.最终我们通过is可以查看两个变量使…
1.WTForms表单验证基本使用 flask-wtf是一个简化了WTForms操作的一个第三方库,WTForms表单的两个主要的功能jiushi就是验证用户提交数据的合法性以及渲染模板.当然还包括其他的功能:CSRF保护,文件上传等等.安装flask-wtf也会默认安装wtforms. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <…
使用footer元素创建脚注 顾名思义,footer元素通常位于页面的底部.尽管footer通常位于某个区域或者页面的底部,但并非总是如此.footer元素旨在包含作者.网站所有者.版权数据.网站规章制度等信息.如果它位于article或section中,则包含文章发布的日期.标记.分类和其他元数据. HTML5规范为一个非常常见的Web元素--页面中的版权声明--提供了一个解决方案: <footer> <small>© Copyright HTML5 Cookbook 2011&…
<tbody>标签 <tbody>如果表格内容非常多的时候,如果加上这个标签它会让这个表格全部下载好才会显示.用在表格标签上面. 如果您使用 thead.tfoot 以及 tbody 元素,您就必须使用全部的元素.它们的出现次序是:thead.tfoot.tbody,这样浏览器就可以在收到所有数据前呈现页脚了.您必须在 table 元素内部使用这些标签. 用CSS样式添加表格边框: <style type="text/css">table tr td…