衣舞晨风

勿忘初心

Boxing and Unboxing

C# It is best to avoid using value types in situations where they must be boxed a high number of times, for example in non-generic collections classe...

2019-02-18 12:22:55

阅读数 10

评论数 0

Java 12 Shenandoah GC

Shenandoah: An open-source concurrent compacting garbage collector for OpenJDK ABSTRACT Shenandoah is an open-source region-based low-pause pa...

2019-01-10 20:39:04

阅读数 114

评论数 0

Java GC G1 详解

G1(Garbage-First)回收器是在JDK1.7中正式使用的全新垃圾回收器,G1拥有独特的垃圾回收策略,从分代上看,G1依然属于分代垃圾回收器,它会区分年代和老年代,依然有eden和survivor区,但从堆的结构上看,它并不要求整个eden区、年清代或者老年代都连续。它使用了全新的分区算...

2019-01-02 18:09:50

阅读数 317

评论数 0

Java ZGC: A Scalable Low-Latency Garbage Collector

Summary The Z Garbage Collector, also known as ZGC, is a scalable low-latency garbage collector. Goals GC pause times should not exceed 10ms Ha...

2018-12-26 17:42:40

阅读数 84

评论数 1

Netty Reactor 模型

一、Reactor单线程模型 Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成,NIO线程的职责如下: 作为NIO服务端,接收客户端的TCP连接; 作为NIO客户端,向服务端发起TCP连接; 读取通信对端的请求或者应答消息; 向通信对端发送消息请求或者应答...

2018-12-09 18:09:00

阅读数 67

评论数 0

MEMORY TUNING: KEY PERFORMANCE INDICATORS

When you are tuning the application’s memory & Garbage Collection settings, you should take well-informed decisions based on th...

2018-11-21 12:22:32

阅读数 49

评论数 0

Java JDK 11 ReentrantReadWriteLock 原理分析

今天本来是想去户外穿越看枫叶的,但报名晚了又加上今天天气不太好,未去成。 无所事事,于是,就想把之前未曾细看过的读写锁看一下。 1、前言 希望在阅读本文之前,建议先看一下以下两篇文章: 1、《Java AQS 梳理》 2、《Java volatile的内存语义与AQS锁内存可见性》 读...

2018-11-11 10:57:29

阅读数 824

评论数 3

Java并发编程的艺术:Condition的实现分析

ConditionObject是同步器AbstractQueuedSynchronizer的内部类,因为Condition的操作需要获取相关联的锁,所以作为同步器的内部类也较为合理。每个Condition对象都包含着一个队列(以下称为等待队列),该队列是Condition对象实现等待/通知功能的关...

2018-10-27 09:35:36

阅读数 2404

评论数 5

实战JAVA虚拟机:在TLAB上分配对象

TLAB全称是Thread Local Allocation Buffer 即线程本地分配缓存,从名字上看是一个线程专用的内存分配区域。 为什么需要TLAB这个区域呢?这是为了加速对象分配而生的。由于对象一般会分配在堆上,而堆是全局共享的。所以存在多个线程在堆上申请空间。因此,每一次对象分配都必...

2018-10-24 08:09:26

阅读数 76

评论数 1

使用JMC(Java Mission Control )监控docker中的java应用

JMC:Java Mission Control dockerfile如下: FROM openjdk:10.0.2 ADD log-search-0.0.1-SNAPSHOT.jar /application.jar WORKDIR / RUN echo "Asia/Shang...

2018-10-23 13:24:31

阅读数 101

评论数 0

kubernates java client 连接api server

kubernates java client 官方包地址: https://github.com/kubernetes-client/java 1、根据官方文档引入pom 2、登陆kubernates集群master节点找到kubectl.kubeconfig文件 3、将kubectl.kubec...

2018-10-13 09:45:53

阅读数 291

评论数 0

Golang 协程 跟Java NIO

《Java NIO AIO 基本概念》 《goroutine 调度器(scheduler)》 有没有发现Golang协程的schedule跟Java NIO的selector很像?都是依赖epoll(linux)来判断事情有没有完成 JDK 7 引入了NIO 2,NIO2用的就是epoll,...

2018-10-02 10:44:03

阅读数 432

评论数 0

Java NIO 浅析

在阅读本文前,强烈建议阅读一下:《Java NIO AIO 基本概念》 如何结合事件模型使用NIO同步非阻塞特性 回忆BIO模型,之所以需要多线程,是因为在进行I/O操作的时候,一是没有办法知道到底能不能写、能不能读,只能"傻等",即使通过各...

2018-10-02 09:38:40

阅读数 67

评论数 0

NIO零拷贝与操作系统零拷贝

零拷贝的定义 Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 因为少了一次内存的拷贝, 因此 CPU 的效率就得到的提升. 在 OS 层面上的 Zero-copy 通常指避免在 用户态(User-space) 与 内核态(Kern...

2018-10-02 09:24:17

阅读数 180

评论数 0

Java NIO AIO 基本概念

一、NIO 在介绍NIO编程之前,我们首先需要澄清一个概念:NIO到底是什么的简称?有人称之为New I/O,因为它相对于之前的I/O类库是新增的,所以被称为New I/O,这是它的官方叫法。但是,由于之前老的I/O类库是阻塞I/O,New I/O类库的目标就是要让Java支持非阻塞I/O,所以...

2018-10-02 09:01:50

阅读数 219

评论数 0

Java volatile的内存语义与AQS锁内存可见性

提到volatile首先想到就是: 保证此变量对所有线程的可见性,这里的 “可见性” 是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 禁止指令重排序优化。 &a...

2018-05-23 19:51:00

阅读数 1313

评论数 4

Java并发编程的艺术-final域的内存语义

final域的重排序规则       对于final域,编译器和处理器要遵守两个重排序规则。 在构造函数内对一个final域的写入,与随...

2018-05-16 07:35:47

阅读数 181

评论数 0

排查Java的CPU性能问题

最近在github上看到了一个很实用一些脚本,github地址: https://github.com/oldratlee/useful-scripts 其中有一个(show-busy-java-threads)用于快速排查Java的CPU性能问题(top us值过高),自动查出运行的Java...

2018-05-13 10:21:32

阅读数 419

评论数 0

Java并发编程的艺术--volatile的定义与实现原理

      Java语言规范第3版中对vola...

2018-04-25 21:51:08

阅读数 225

评论数 0

Java Fork/Join 协程

一、概览        &nb...

2018-04-22 17:52:34

阅读数 319

评论数 0

提示
确定要删除当前文章?
取消 删除