
java
文章平均质量分 68
mahui_1980
努力
展开
-
spring-boot-admin-starter-client与spring-boot版本不匹配的坑
***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call the method org.springframework.boot.web.client.RestTemplateBuilder.setConnectTimeout(Ljava/time/Duration;)Lorg/springframe...原创 2021-06-03 16:58:12 · 9197 阅读 · 1 评论 -
Disruptor二
其实Disruptor与其说是一个框架,不如说是一种设计思路,这个设计思路对于存在“并发、缓冲区、生产者—消费者模型、事务处理”这些元素的程序来说,Disruptor提出了一种大幅提升性能(TPS)的方案。Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。Disruptor术语说明RingBuffer: 被看作Disruptor最主要的组件,然而从3.0开始RingBuffer仅仅负责存储和更新在原创 2020-12-03 16:20:55 · 157 阅读 · 0 评论 -
Disruptor初探
高性能队列——DisruptorDisruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单Java内置队列队列的底层一般分成三种:数组、链表和堆。其中,堆一般情况下是为了实现带有优先级特性的队列,暂且不考虑。通过不加锁的方式实现的队列都是无界的单线程情况下,不加锁的性能 > CAS操作的性能 > 加锁的性能。关于锁和CAS原创 2020-12-01 16:18:26 · 228 阅读 · 0 评论 -
java内存相关知识点简记
1:object的finalize方法java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。(1).对象不一定会被回收。(2).垃圾回收不是析构函数。(3).垃圾回收只与内存有关。(4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。Java 1.1 通过提供一个System.runFinalizersOnExit() 方法部分地解决了这个问题。(不要将这个方法与 Java 1.0 中原创 2021-04-16 16:22:59 · 240 阅读 · 2 评论 -
关于equals方法对参数添加强引用的测试
在GC G1调研过程中,渡娘找到一个观点,在以下代码中Object obj=new Object();obj.equals(new Object);通过obj取得对应的对象,如obj.equals(new Object());而这样obj对后边的Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常用到的编码形式。观点被提出,但未找到官方出处,也没有明确解答,逻辑上无法理解,为何会在方法层面,修改了底层的引用概念,于是自己验证了一下。代码如下:i原创 2021-04-15 15:18:34 · 88 阅读 · 0 评论 -
java G1(并发)垃圾收集器(二)
G1提供了两种GC模式,Young GC和Mixed GC,两种都是Stop The World(STW).一:定义STWStop-The-World机制简称STW:在执行垃圾收集时,Java的所有线程被挂起,暂时停顿,只执行垃圾回收。-XX:MaxGCPauseMillis=200,参数可设置最大暂停时间,jdk8默认最大暂停时间是200msSATB:Snapchat-At-The_BeginningSATB是维持并发GC的一种手段。G1并发的基础就是SATB。SATB可以理解成在GC原创 2021-04-12 18:49:20 · 557 阅读 · 0 评论 -
java G1(并发)垃圾收集器(一)
Garbage-First Garbage Collector官方文档:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/G1(并发)收集器G1收集器(或者垃圾优先收集器)的设计初衷是为了尽量缩短处理超大堆(大于4GB)时产生的停顿。相对于CMS的优势而言是内存碎片的产生率大大降低,设计原则就是简单可行的性能调优一:jdk8环境下开启G1垃圾收集,-XX:+UseG1GC -Xmx8g -XX:MaxGC原创 2021-04-09 12:00:23 · 636 阅读 · 0 评论 -
java GC垃圾回收
一,什么是GC(垃圾回收)垃圾回收GC:garbage collection的简写,回收内存中不再使用的对象。代码中可以通过System.gc() 或Runtime.getRuntime().gc()显示调用,但JVM不一定会执行,在java诞生初,JVM管理内存,降低初学者门槛是一大亮点;java广泛被应用的今天,内存的不可控只可调优,已非优势。与垃圾回收相关的JVM参数:-Xms / -Xmx — 堆的初始大小 / 堆的最大大小-Xmn — 堆中年轻代的大小-XX:-DisableEx原创 2021-04-08 18:05:57 · 253 阅读 · 2 评论