标签:垃圾回收

Java

高性能无锁队列 Disruptor 初体验

1

dulong 发布于 2018-08-16

最近一直在研究队列的一些问题,今天楼主要分享一个高性能的队列 Disruptor 。 what Disruptor ? 它是英国外汇交易公司 LMAX 开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于 Disruptor 开发的系统单线程能支撑每秒600万订单。 目...

阅读(2)评论(0)赞 (0)

Java

感悟优化――Netty对JDK缓冲区的内存池零拷贝改造

2

likai 发布于 2018-08-15

NIO中缓冲区是数据传输的基础,JDK通过ByteBuffer实现,Netty框架中并未采用JDK原生的ByteBuffer,而是构造了ByteBuf。 ByteBuf对ByteBuffer做了大量的优化,比如说内存池,零拷贝,引用计数(不依赖GC),本文主要是分析这些优化,学习...

阅读(11)评论(0)赞 (0)

Java

JVM–运行时栈帧结构简介

1

Harries 发布于 2018-08-14

栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个...

阅读(33)评论(0)赞 (0)

Java

collected questions

songhua.gao 发布于 2018-08-13

分布式锁 websocket zookeeper 重入锁 class的加载过程 GC原理(新生代、老生代、gc回收策略-mark-swap、copying、压缩、分区) Nginx相关知识以及日志文件处理 spring相关知识(aop、ioc,bean的生命周期(中哪个地方可以提...

阅读(14)评论(0)赞 (0)

Java

Guava Cache — Java 应用缓存神器

wenming.gapo 发布于 2018-08-13

导语: Guava 作为Google开源Java 库中的精品成员,在性能、功能上都十分出色,本文将从实际使用的角度,来对Guava进行讲解 在使用Cache之前,首先要考虑两个问题: 1、应该在什么情况下使用它? 2、如何正确的使用它? 作者本人有很大一部分代码都在逻辑层(CGI...

阅读(15)评论(0)赞 (0)

Java

JVM系列(七) – JVM线上监控工具

3

dulong 发布于 2018-08-13

通过上一篇的 JVM 垃圾回收知识,我们了解了 JVM 具体的 垃圾回收算法 和几种 垃圾回收器 。理论是指导实践的工具,有了理论指导,定位问题的时候,知识和经验是关键基础,数据可以为我们提供依据。 在线上我们经常会遇见如下几个问题: CPU 如果遇到了以上这种问题,在 线下环境...

阅读(25)评论(0)赞 (0)

Java

深入理解Java内存与垃圾回收调优

4

likai 发布于 2018-08-10

要了解Java垃圾收集机制,先理解JVM内存模式是非常重要的。今天我们将会了解JVM内存的各个部分、如何监控以及垃圾收集调优。 Java(JVM)内存模型 正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代**(Young Ge...

阅读(33)评论(0)赞 (0)

Java

JVM原理之GC原理

5

wenming.gapo 发布于 2018-08-09

追踪回收算法(tracing collector)可达性分析算法 按代回收算法(Generational Collector) 复制回收算法(Coping Collector) (新生代) 标记-清理算法 (老年代) 标记-整理算法 (老年代) 空间分配担保(Handle Pro...

阅读(18)评论(0)赞 (0)

Java

面试 Q&A (二)

13

xiaoli.wang 发布于 2018-08-09

参考: 基本数据类型 字节 范围 默认值 byte 8-bit 1个字节 -128 ~ 127 0 short 16-bit 2个字节 -32768 ~ 32767 0 int 32-bit 4个字节 -2^31 ~ 2^31 – 1 0 long 64-bit 8个...

阅读(40)评论(0)赞 (0)

Spring

这是一篇优雅的Springboot2.0使用手册

8

yeseng 发布于 2018-08-08

最近再研究springboot的原理:yum:颇有收获,现在让我分享一下springboot如何使用吧~ 想要解锁更多新姿势?请访问我的博客 啥是Springboot 和书上理解的不同,我认为Springboot是一个优秀的快速搭建框架,他通过maven继承方式添加依赖来整合很多...

阅读(51)评论(0)赞 (0)

Java

JVM系列(六) – JVM垃圾回收器

12

wenming.gapo 发布于 2018-08-06

在之前的几篇博客中,我们大致介绍了,常见的 垃圾回收算法 及 JVM 中常见的分类回收算法。这些都是从算法和规范上分析 Java 中的垃圾回收,属于方法论。在 JVM 中,垃圾回收的具体实现是由 垃圾回收器 ( Garbage Collector )负责的。 正文 概述 在了解 ...

阅读(17)评论(0)赞 (0)

Java

Effective Java Item24 – 優先考慮靜態成員類

3

刘莉莉 发布于 2018-08-04

這篇是Effective Java – Favor static member classes over nonstatic章節的讀書筆記 本篇的程式碼來自於原書內容 Item24: 優先考慮靜態成員類 嵌套類(nested class) 嵌套類是在某一個類 的內部 ...

阅读(18)评论(0)赞 (0)

Java

Java对象的自我救赎

2

darida 发布于 2018-08-02

一、如何判断对象已死? 我们知道程序计数器、虚拟机栈、本地方法栈三个区域都是线程私有的,它们的生命周期都是随着线程而生,随着线程而亡,因此是不需要过多考虑回收的问题,而Java Heap(堆)与Method Area(方法区)不一样,必须考虑内存回收问题。 我们只有当程序运行的时...

阅读(27)评论(0)赞 (0)

Java

还在用阻塞队列?Disruptor了解一下?

11

darida 发布于 2018-07-31

听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不仅让这个超市崩溃,还会容易造成各种踩踏事件,当然这些事其实在我们现实中也是会经常发生。 当然在...

阅读(46)评论(0)赞 (0)

Java

为什么使用0x61c88647

1

xirruiqiang 发布于 2018-07-30

在Java1.4之前,ThreadLocals会导致线程之间发生竞争。在新的设计里,每一个线程都有他们自己的ThreadLocalMap,用来提高吞吐量,然而,我们仍然面临内存泄漏的可能性,因为长时间运行线程的ThreadLocalMap中的值不会被清除 在Java的早期版本中,...

阅读(29)评论(0)赞 (0)

Java

JVM面试题

wenming.gapo 发布于 2018-07-30

1、你知道哪些或者你们线上使⽤什么GC策略?它有什么优势,适⽤于什么场景? 参考 触发JVM进行Full GC的情况及应对策略 。 2、Java类加载器包括⼏种?它们之间的⽗⼦关系是怎么样的?双亲委派机制是什么意思?有什么好处? 启动Bootstrap类加载、扩展Extensio...

阅读(27)评论(0)赞 (0)

Java

“java 代码是怎么运行的?”

2

xubiao.zhuang 发布于 2018-07-29

JRE 仅包含运行 java 程序的必须组件: Java 虚拟机以及 Java 核心类库等。 JDK(Java 开发工具包)同样包含了 JRE,并且还附带了一系列开发,诊断工具。 java 为什么要运行在虚拟机里? 语法复杂,抽象程度高。 转换具体操作 主流思路:将 java 程...

阅读(34)评论(0)赞 (0)