随笔 - 2228  文章 - 4  评论 - 371  阅读 - 1109万
11 2016 档案
十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V 阅读全文
posted @ 2016-11-29 22:22 duanxz 阅读(26387) 评论(0) 推荐(3) 编辑
Swagger入门教程
摘要:关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 Swagger 文件可以在许多不 阅读全文
posted @ 2016-11-28 10:10 duanxz 阅读(1977) 评论(0) 推荐(2) 编辑
java安全沙箱(四)之安全管理器及Java API
摘要:java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管 阅读全文
posted @ 2016-11-28 10:02 duanxz 阅读(2756) 评论(0) 推荐(0) 编辑
java安全沙箱(二)之.class文件检验器
摘要:java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管 阅读全文
posted @ 2016-11-28 10:01 duanxz 阅读(1161) 评论(0) 推荐(0) 编辑
java安全沙箱(三)之内置于Java虚拟机(及语言)的安全特性
摘要:java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管 阅读全文
posted @ 2016-11-28 10:01 duanxz 阅读(532) 评论(0) 推荐(0) 编辑
java安全沙箱(一)之ClassLoader双亲委派机制
摘要:java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 本篇博客主要介绍“类加载体系”的基本原理;如需了解其它几类安全机制可以通过上面的博客 阅读全文
posted @ 2016-11-28 10:00 duanxz 阅读(5638) 评论(0) 推荐(1) 编辑
Java数组在内存中是如何存放的
摘要:阅读目录 一维数组 二维数组 数组对象及其引用存放在内存中的哪里? 阅读目录 一维数组 二维数组 数组对象及其引用存放在内存中的哪里? Java中有两种类型的数组: 基本数据类型数组; 对象数组; 当一个对象使用关键字“new”创建时,会在堆上分配内存空间,然后返回对象的引用,这对数组来说也是一样的 阅读全文
posted @ 2016-11-25 18:06 duanxz 阅读(10764) 评论(0) 推荐(1) 编辑
垃圾收集器之:G1收集器
摘要:G1垃圾收集器是一种工作在堆内不同分区上的并发收集器。分区既可以归属于老年代,也可以归属新生代,同一个代的分区不需要保持连续。为老年代设计分区的初衷是我们发现并发后台线程在回收老年代中没有引用的对象时,有的分区垃圾对象的数量很多,另一些分区垃圾对象相对较少。 虽然分区的垃圾收集工作实际还是要暂停应用 阅读全文
posted @ 2016-11-25 18:05 duanxz 阅读(7032) 评论(0) 推荐(3) 编辑
内存分配有哪些策略
摘要:1、内存分配有哪些策略 我们从编译原理讲起,不同的开发环境、开发语言都会有不同的策略。一般来说,程序运行时有三种内存分配策略:静态的、栈式的、堆式的 静态存储是指在编译时就能够确定每个数据目标在运行时的存储空间需求,因而在编译时就可以给它们分配固定的内存空间。 这种分配策略要求程序代码中不允许有可变 阅读全文
posted @ 2016-11-25 17:43 duanxz 阅读(3070) 评论(1) 推荐(0) 编辑
虚拟机中的锁优化简介(适应性自旋/锁粗化/锁削除/轻量级锁/偏向锁)
摘要:高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁削除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(Lightweight Locki 阅读全文
posted @ 2016-11-24 23:26 duanxz 阅读(822) 评论(0) 推荐(1) 编辑
thread-safe之1:Java的线程安全(共享数据的5种场景、synchronized与reentrantLock区别)
摘要:竞态条件 线程之间共享堆空间。同一个程序多线程访问同一个资源时,如果对资源的访问顺序敏感,就称存在竞态条件,代码区成为临界区。 例如:先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。 线程安全 什 阅读全文
posted @ 2016-11-24 23:25 duanxz 阅读(1290) 评论(0) 推荐(0) 编辑
JVM之数据类型
摘要:1.概述 Java虚拟机的数据类型可分为两大类:原始类型(Primitive Types,也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型 。 2.原始类型 原始类型是最基本的元素,用于构成复杂的引用类型。与世间万物一样,都是由最基本 阅读全文
posted @ 2016-11-24 21:05 duanxz 阅读(2170) 评论(0) 推荐(0) 编辑
垃圾收集器之:CMS收集器
摘要:HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。 CMS收集器有3种基本的操作,分别是: CMS收集器会对新生代 阅读全文
posted @ 2016-11-24 18:20 duanxz 阅读(2096) 评论(0) 推荐(0) 编辑
JVM实用参数(八)GC日志
摘要:本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数。GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配模式。 -XX:+PrintGC 参数-XX:+PrintGC(或者-verbose:gc)开启了简 阅读全文
posted @ 2016-11-24 18:20 duanxz 阅读(954) 评论(0) 推荐(0) 编辑
垃圾收集器之:throughput吞吐量收集器
摘要:在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准: 首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程序 阅读全文
posted @ 2016-11-24 18:19 duanxz 阅读(2871) 评论(0) 推荐(1) 编辑
JVM实用参数(五)新生代垃圾回收
摘要:本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation)。首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数。 单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作。新生代存在的唯一理由是优化垃圾回收(G 阅读全文
posted @ 2016-11-24 18:18 duanxz 阅读(785) 评论(0) 推荐(0) 编辑
JVM实用参数(四)内存调优
摘要:理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数。然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工作中得好伙伴。在这篇文章中,我们将介绍一些关于JVM内存管理的参数。知道并理解这些参数,将对开发者和 阅读全文
posted @ 2016-11-24 18:15 duanxz 阅读(1274) 评论(0) 推荐(0) 编辑
JVM参数(二)参数分类和即时(JIT)编译器诊断
摘要:在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数。我同样会讨论一些关于JIT编译器诊断的有趣参数。 JVM 参数分类 HotSpot JVM 提供了三类参数。第一类包括了标准参数。顾名思义,标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本中不会改变。你 阅读全文
posted @ 2016-11-24 18:14 duanxz 阅读(1233) 评论(0) 推荐(0) 编辑
JVM参数(三)打印所有XX参数及值
摘要:本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。 -XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial 让我们现在就了解一下新参数的输出 阅读全文
posted @ 2016-11-24 18:14 duanxz 阅读(5806) 评论(0) 推荐(0) 编辑
JVM参数(一)JVM类型以及编译器模式
摘要:现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色。自适应内存管理、垃圾收集、及时编译、动态类加载、锁优化——这里仅仅列举了某些场景下会发生的神奇的事情,但他们几乎不会直接与普通的程序员相关。在运行时,JVM会不断的计算并优化应用或者应用的某些部分。 虽然有了这种程 阅读全文
posted @ 2016-11-24 18:13 duanxz 阅读(1545) 评论(0) 推荐(0) 编辑
Java堆外内存之五:堆外内存管理类ByteBuffer
摘要:本篇主要讲解如何使用直接内存(堆外内存),并按照下面的步骤进行说明: 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 相关背景-->读写操作-->关键属性-->读写实践-->扩展-->参考说明 希望对想使用直接内存的朋友,提供点快捷的参考。 数据类型 下面这些,都是在使用 阅读全文
posted @ 2016-11-24 15:17 duanxz 阅读(1326) 评论(0) 推荐(0) 编辑
jdk8的注解 @sun.misc.Contended
摘要:@sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存行(Cache Line)。 这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。 (注: 阅读全文
posted @ 2016-11-24 14:47 duanxz 阅读(2989) 评论(0) 推荐(0) 编辑
Java 8 Optional类深度解析
摘要:身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等 阅读全文
posted @ 2016-11-23 22:18 duanxz 阅读(744) 评论(0) 推荐(0) 编辑
Eclipse集成javap查看字节码
摘要:分析java语言特性的一个好帮手是使用javap工具查看java编译后的字节码,楼主今天在学习java泛型中的桥方法时遇到一些不解,想到javap这个好工具可以帮助解答一些疑惑,索性就捣鼓如何在eclipse中配置javap工具快速查看java字节码。 楼主学习的代码工程用的maven结构。默认ja 阅读全文
posted @ 2016-11-23 17:44 duanxz 阅读(2790) 评论(0) 推荐(1) 编辑
Java 应用性能调优实践
摘要:Java 应用性能优化是一个老生常谈的话题,笔者根据个人经验,将 Java 性能优化分为 4 个层级:应用层、数据库层、框架层、JVM 层。通过介绍 Java 性能诊断工具和思路,给出搜狗商业平台的性能优化案例以供参考。 Java 应用性能优化是一个老生常谈的话题,笔者根据个人经验,将 Java 性 阅读全文
posted @ 2016-11-23 11:30 duanxz 阅读(9970) 评论(1) 推荐(3) 编辑
GC之七--gc日志分析工具
摘要:性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。 Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc日志 -verbose.gc开关可显示GC的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间 阅读全文
posted @ 2016-11-23 11:10 duanxz 阅读(16358) 评论(0) 推荐(1) 编辑
gc之六--Minor GC、Major GC、Full GC以及Mixed GC之间的区别
摘要:目录: GC之一--GC 的算法分析、垃圾收集器、内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor GC、Major GC和Full GC之间的区别 GC之六--SystemGC完全解读 堆内存划分为 阅读全文
posted @ 2016-11-22 22:48 duanxz 阅读(4048) 评论(0) 推荐(0) 编辑
Java堆外内存之四:直接使用Unsafe类操作堆外内存
摘要:在nio以前,是没有光明正大的做法的,有一个work around的办法是直接访问Unsafe类。如果你使用Eclipse,默认是不允许访问sun.misc下面的类的,你需要稍微修改一下,给Type Access Rules里面添加一条所有类都可以访问的规则: 在使用Unsafe类的时候: 发现还是 阅读全文
posted @ 2016-11-22 18:41 duanxz 阅读(7402) 评论(0) 推荐(0) 编辑
JVM插码之五:Java agent+ASM实战--监控所有方法执行时间
摘要:本文建立在对instrumentation和agent有初步的了解的前提下阅读,关于这2个类的讲解在其它文章中。 这是一个maven项目,pom中需要的配置,lib中有asm的jar包 pom.xml文件: 打包后的agent的jar包中manifest属性如下: agent类,只有一个方法,就是把 阅读全文
posted @ 2016-11-22 17:31 duanxz 阅读(4499) 评论(0) 推荐(2) 编辑
Java堆外内存之三:堆外内存回收方法
摘要:一、JVM内存的分配及垃圾回收 对于JVM的内存规则,应该是老生常谈的东西了,这里我就简单的说下: 新生代:一般来说新创建的对象都分配在这里。 年老代:经过几次垃圾回收,新生代的对象就会放在年老代里面。年老代中的对象保存的时间更久。 永久代:这里面存放的是class相关的信息,一般是不会进行垃圾回收 阅读全文
posted @ 2016-11-22 15:16 duanxz 阅读(20470) 评论(1) 推荐(9) 编辑
Java堆外内存之六:堆外内存溢出问题排查
摘要:一、堆外内存组成 通常JVM的参数我们会配置 -Xms 堆初始内存 -Xmx 堆最大内存 -XX:+UseG1GC/CMS 垃圾回收器 -XX:+DisableExplicitGC 禁止显示GC -XX:MaxDirectMemorySize 设置最大堆外内存,默认是-xmx-survivor,也就 阅读全文
posted @ 2016-11-22 15:07 duanxz 阅读(23213) 评论(0) 推荐(0) 编辑
GC之五--SystemGC完全解读
摘要:目录: GC之一--GC 的算法分析、垃圾收集器、内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor GC、Major GC和Full GC之间的区别 GC之六--SystemGC完全解读 概述 JVM的 阅读全文
posted @ 2016-11-22 15:06 duanxz 阅读(3175) 评论(0) 推荐(0) 编辑
Java堆外内存之二:堆外内存使用总结
摘要:目录: 《堆外内存操作类ByteBuffer》 《DirectBuffer》 《Unsafe(java可直接操作内存(),挂起与恢复,CAS操作)》 有时候对内存进行大对象的读写,会引起JVM长时间的停顿,有时候则是希望最大程度地提高JVM的效率,我们需要自己来管理内存(看起来很像是Java像C++ 阅读全文
posted @ 2016-11-22 11:22 duanxz 阅读(1778) 评论(1) 推荐(0) 编辑
Spring @Async之二:SpringBoot 自定义线程池,修改springboot的默认线程池
摘要:本教程目录: 自定义线程池 配置spring默认的线程池 1. 自定义线程池 1.1 修改application.properties task.pool.corePoolSize=20 task.pool.maxPoolSize=40 task.pool.keepAliveSeconds=300 阅读全文
posted @ 2016-11-21 10:18 duanxz 阅读(31904) 评论(0) 推荐(5) 编辑
JVM内存模型
摘要:一、为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话, 阅读全文
posted @ 2016-11-18 10:29 duanxz 阅读(5662) 评论(5) 推荐(7) 编辑
JDK源码包结构分类
摘要:最近查看JDK源码时,无意间发现几个类在陌生包里:com.sun.*、sun.*、org.*,google了一把总结了下以备他人搜索,如内容有误欢迎指正! Jre库包含的jar文件(jdk1.6):resources.jar、rt.jar、jsse.jar、jce.jar、charsets.jar、 阅读全文
posted @ 2016-11-16 10:37 duanxz 阅读(789) 评论(0) 推荐(0) 编辑
命令查看java的class字节码文件、verbose、synchronize、javac、javap,查看汇编命令
摘要:一、javac命令 1 javac –verbose查看运行类是加载了那些jar文件 HelloWorld演示: public class Test { public static void main(String[] args) { Object lock = new Object(); sync 阅读全文
posted @ 2016-11-15 17:48 duanxz 阅读(1386) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”11之 Semaphore信号量的原理
摘要:一、Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁",是基于AQS实现的,通过state变量来实现共享。通过调用acquire方法,对state值减去一,当调用release的时候,对state值加一。当state变量小于0的时候,在AQS队列中阻塞等待。 信号量 阅读全文
posted @ 2016-11-14 22:15 duanxz 阅读(1068) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
摘要:CyclicBarrier简介 CyclicBarrier是一个同步辅助类,CyclicBarrier,就是一个计数器栅栏,也就是一个计数器开关。允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循 阅读全文
posted @ 2016-11-14 22:14 duanxz 阅读(573) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例
摘要:概要 前面对"独占锁"和"共享锁"有了个大致的了解;和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。 CountDownLatch简介 CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(554) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
摘要:ReadWriteLock 和 ReentrantReadWriteLock介绍 ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。“写入锁”用于写 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(579) 评论(0) 推荐(0) 编辑
Java多线程系列--AQS之 LockSupport
摘要:concurrent包是基于AQS (AbstractQueuedSynchronizer)框架的,AQS(JAVA CAS原理、unsafe、AQS)框架借助于两个类: Unsafe(提供CAS操作) 《AQS之:Unsafe(java可直接操作内存(),挂起与恢复,CAS操作)》 LockSup 阅读全文
posted @ 2016-11-14 22:12 duanxz 阅读(1390) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”05之 非公平锁
摘要:概要 前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基于JDK1.7.0_40)关于锁的数据结构请参考"Java多线程系列--“JUC锁”03之 公平锁(一) ",锁的使用示 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(467) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”06之 Condition条件
摘要:Condition介绍 Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的n 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(464) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”04之 公平锁(二)
摘要:概要 前面一章,我们学习了“公平锁”获取锁的详细流程;这里,我们再来看看“公平锁”释放锁的过程。内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系列--“JUC锁”03之 公平锁(一)”,锁的使用示例请参考“Java多线程系列--“JUC锁”02 阅读全文
posted @ 2016-11-14 22:09 duanxz 阅读(496) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”03之 公平锁(一)
摘要:概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40) 一. tryAcquire() 二. addWaiter() 三. acquireQueued() 四. selfIn 阅读全文
posted @ 2016-11-14 22:08 duanxz 阅读(550) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
摘要:ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。 顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。ReentrantLock分为“公平锁”和“非公平锁 阅读全文
posted @ 2016-11-14 22:07 duanxz 阅读(672) 评论(0) 推荐(2) 编辑
Java多线程系列--“JUC锁”01之 框架
摘要:本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock03. Java多线程系列--“JUC锁”03之 公平锁(一)04. Java多线程系列-- 阅读全文
posted @ 2016-11-11 17:35 duanxz 阅读(705) 评论(0) 推荐(1) 编辑
RocketMQ之二:分布式开放消息系统RocketMQ的原理与实践(消息的顺序问题、重复问题、可靠消息/事务消息)
摘要:分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了三个问题: RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的? 关键特性以及其实 阅读全文
posted @ 2016-11-11 11:21 duanxz 阅读(4770) 评论(0) 推荐(1) 编辑
Redis 发布/订阅机制原理分析
摘要:Redis 通过 PUBLISH 、 SUBSCRIBE 和 PSUBSCRIBE 等命令实现发布和订阅功能。 这些命令被广泛用于构建即时通信应用,比如网络聊天室(chatroom)和实时广播、实时提醒等。 本文通过分析 Redis 源码里的 pubsub.c 文件,了解发布和订阅机制的底层实现,籍 阅读全文
posted @ 2016-11-11 11:07 duanxz 阅读(6130) 评论(1) 推荐(0) 编辑
Guava 12-数学运算
摘要:范例 为什么使用Guava Math Guava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败; Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava Ma 阅读全文
posted @ 2016-11-10 23:34 duanxz 阅读(1196) 评论(0) 推荐(0) 编辑
Guava] 11
摘要:11 阅读全文
posted @ 2016-11-10 23:33 duanxz 阅读(165) 评论(0) 推荐(0) 编辑
Guava 10-散列
摘要:概述 Java内建的散列码[hash code]概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换。此外,使用Java内建方法实现的散列码通常是劣质的,部分是因为它们最终都依赖于JDK类中已有的劣质散列码。 Object.hashCode往往很快,但是在预防碰撞上 阅读全文
posted @ 2016-11-10 23:32 duanxz 阅读(853) 评论(0) 推荐(0) 编辑
Guava 8-区间
摘要:范例 简介 区间,有时也称为范围,是特定域中的凸性(非正式说法为连续的或不中断的)部分。在形式上,凸性表示对a<=b<=c, range.contains(a)且range.contains(c)意味着range.contains(b)。 区间可以延伸至无限——例如,范围”x>3″包括任意大于3的值 阅读全文
posted @ 2016-11-10 23:31 duanxz 阅读(835) 评论(0) 推荐(0) 编辑
Guava 9-I/O
摘要:字节流和字符流 Guava使用术语”流” 来表示可关闭的,并且在底层资源中有位置状态的I/O数据流。术语”字节流”指的是InputStream或OutputStream,”字符流”指的是Reader 或Writer(虽然他们的接口Readable 和Appendable被更多地用于方法参数)。相应的 阅读全文
posted @ 2016-11-10 23:31 duanxz 阅读(1199) 评论(0) 推荐(0) 编辑
mat(Eclipse Memory Analyzer tool)之二--heap dump分析
摘要:在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。 MAT 不是一个万能工具,它并不能处 阅读全文
posted @ 2016-11-09 10:42 duanxz 阅读(10347) 评论(0) 推荐(2) 编辑
Python流程控制语句
摘要:人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;有些能力好或者家境好的人,可以有更多的选择;还有一些人在人生的迷茫期会在原地打转,找不到方向。对于相信有上帝的人来讲,这就好像是上帝事先为我们制定好了人生路线,也好像是那些神仙为唐曾师徒的取经之路提前设置 阅读全文
posted @ 2016-11-08 22:14 duanxz 阅读(667) 评论(0) 推荐(0) 编辑
监控和管理Cassandra
摘要:了解Cassandra集群的性能特点有助于诊断和维护Cassandra。由于Cassandra使用JAVA开发的,所以它就提供了JMX环境下的一些管理工具来管理Cassandra,它们包括:Cassandra nodetool工具、DataStax OpsCenter管理控制台和JConsole。 阅读全文
posted @ 2016-11-07 18:26 duanxz 阅读(7588) 评论(0) 推荐(0) 编辑
康威定律——这个50年前就被提出的微服务概念,你知多少?
摘要:概述微服务架构是一种非常流行的新概念,即便可供以借鉴的经验比较少,当然不能阻挡它成为热门话题与研究对象。 令人惊讶地是,其实微服务的概念早在五十多年前就已经被提出,多年来,很久研究表明了这些观点的准确性。这就是本文所介绍的——康威定律。现在已经有很多企业正在尝试使用它创建高效的微服务架构。 在这篇文 阅读全文
posted @ 2016-11-03 22:58 duanxz 阅读(4552) 评论(0) 推荐(0) 编辑
MySQL 高性能存储引擎:TokuDB初探
摘要:在安装MariaDB的时候了解到代替InnoDB的TokuDB,看简介非常的棒,这里对ToduDB做一个初步的整理,使用后再做更多的分享。 什么是TokuDB? 在MySQL最流行的支持全事务的引擎为INNODB。其特点是数据本身是用B-TREE来组织,数据本身即是庞大的根据主键聚簇的B-TREE索 阅读全文
posted @ 2016-11-01 22:48 duanxz 阅读(13831) 评论(0) 推荐(2) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示