- 博客(29)
- 资源 (18)
- 收藏
- 关注
原创 top命令VIRT,RES,SHR,DATA
linux top命令VIRT,RES,SHR,DATA的含义VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量3、VIRT = SWAP + RESRES:resident memory usage 常驻内存1、进程当前使用的内存大...
2018-04-25 15:02:19 2212
原创 Octave简单使用
1.Octave简介Octave是一个和MATLAB十分类似的软件,相比MATLAB而言,Octave的优点在于开源免费,体积相对很小。而且两者的语法相差也很小,一个能在其中一个软件上运行的程序稍作修改就能够运行于另一个软件之上。下面记录一些Octave常用的语句和指令。2.常用语句指令2.1四则运算利用Octave进行四则运算比较基础,和常见的科学计算器用法类似。122.2逻辑运算 "1 =...
2018-04-24 10:14:24 3202
原创 mina使用详解
mina框架详解Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。Mina ...
2018-04-23 16:00:01 6168
原创 Java 内存模型之堆内存管理
Java 内存模型之堆内存(Heap) 一、背景知识:内存类型介绍 1、什么是 Perm Gen? Perm Gen : Permanent Generation Perm Gen 区是一个特殊的JVM内存区,因为它用来存储用来描述 Class 的 元数据(Class 可以不属于Java语言的一部分,也可以属于),诸如:描述类及其方法。 在大的应用中该区一会儿就满了,并抛出错误:java.lan...
2018-04-23 15:01:27 582
原创 Spark On YARN 一些基本参数
本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有深入研究Spark的源代码,所以只能根据日志去看相关的源代码,从而了解“为什么会这样,为什么会那样”。说明按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client模式、yarn-cluster模式。当在YARN上运行Spark作业,每个Spark executor作为一...
2018-04-20 17:32:04 1696
原创 Java多线程系列之“JUC锁”详解
Java多线程系列--“JUC锁”01之 框架 本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock03. Java多线程系列--“JUC锁”03之 公平锁(一) 04. Java多线程系列--“JUC锁”04之 公平锁(二) 05. Java...
2018-04-20 15:17:04 578
原创 Java多线程系列之“JUC集合“详解
Java集合包在“Java 集合系列01之 总体框架”中,介绍java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合)。1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。(01) LinkedList是双向链表实现的双端队列;它不是线程安全的,只适用于单线程。(...
2018-04-20 14:25:29 2791
原创 Dubbo-从入门到深入
Dubbo-从入门到深入Dubbo-从入门到深入,如何使用dubbo搭建一个分布式系统,dubbo特性介绍,dubbo原理剖析。Spring boot 那些事代码共享在【springboot-learning-example】,spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。任何问题,上「Spring For All」!文章如下:『 Spring ...
2018-04-20 10:08:21 494
原创 正则表达式整理
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScript等各种脚本语言都支持正则表达式。下面整理一些常用的正则表达式。字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 ...
2018-04-20 09:55:17 371
原创 OSGi模块化框架详解
OSGi模块化框架是很早就出来的一个插件化框架,最早Eclipse用它而出名,但这些年也没有大热虽然OSGi已经发布了版本1到版本5。现在用的最多的,也是本文讲述基于的是Equinox的OSGi实现,同时也是Eclipse核心,Spring Dynamic Module也是基于Equinox。OSGi框架为java系统提供了一个通用的容器,该系统中的 bundle,无需停止系统,即可实现 bund...
2018-04-20 09:54:23 18045
原创 Netty基本使用示例
Netty实例几则Netty是基于JDK NIO的网络框架简化了NIO编程, 不用程序自己维护selector, 将网络通信和数据处理的部分做了分离多用于做底层的数据通信, 心跳检测(keepalived) 1. 数据通信1.1 Hello Worldpublic class Server { public static void main(String[] args) throws E...
2018-04-19 17:04:38 926
原创 @Contended padding 伪共享
@Contended和伪共享原文: http://robsjava.blogspot.com/2014/03/what-is-false-sharing.htmlJava8引入了@Contented这个新的注解来减少伪共享(False Sharing)的发生。本文介绍了@Contented注解并解释了为什么False Sharing是如何影响性能的。缓存行CPU读取内存数据时并非一次只读一个字节,...
2018-04-19 16:01:20 648
原创 高性能队列之Disruptor特性详解
背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括Apac...
2018-04-19 15:55:38 846
原创 Disruptor详细介绍之快速入门
1. Disruptor是什么1.1 技术背景LMAX是在英国注册并受到FCA监管(监管号码为509778)的外汇黄金交易所, LMAX架构是LMAX内部研发并应用到交易系统的一种技术。它之所以引起人们的关注,是因为它是一个非常高性能系统,这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,官方号称它能够在一个线程里每秒处理6百万订单.一个仅仅部署在4台服务器上的服务,每秒向Datab...
2018-04-19 15:22:55 1460
原创 Java魔法类:sun.misc.Unsafe
Java魔法类:sun.misc.UnsafeUnsafe类在jdk 源码的多个类中用到,这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。但是,它是一把双刃剑:正如它的名字所预示的那样,它是Unsafe的,它所分配的内存需要手动free(不被GC回收)。Unsafe类,提供了JNI某些功能的简单替代:确保高效性的同时,使事情变得更简单。这篇文章主要是以下文章的整理、翻译。htt...
2018-04-19 11:34:26 420
原创 Java开源框架推荐
Java开源框架推荐(全)Build ToolTools which handle the buildcycle of an application.Apache Maven - Declarative build and dependency management which favors convention over configuration. It's preferable to Apa...
2018-04-19 11:01:57 1329
原创 CAS(Compare and Swap)无锁算法之volatile不能保证原子性而Atomic可以
非阻塞同步算法与CAS(Compare and Swap)无锁算法锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对多线程的锁进行判断就像两姐妹在为一个玩具在争吵,然...
2018-04-19 09:26:45 1108 1
原创 数据库乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
实验环境:mysql5.6存储引擎:innoDB我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。通常实现是这样的:在表中的数据进行操作时(更新),先给...
2018-04-18 17:11:04 1464
原创 Linux上查找线程使用的CPU时间最长
1. 找出cpu耗用厉害的进程pid 终端执行top命令,然后按下shift+p 查找出cpu利用最厉害的pid号:pid号:31365 2. 根据上面第一步拿到的pid号,top -H -p pid 。然后按下shift+p,查找出cpu利用率最厉害的线程号 线程号:31441 3. 将获取到的线程号转换成16进制,去百度转换一下就行 转换的结果:7AD1 ...
2018-04-18 16:58:35 3704
原创 虚拟机内存结构
虚拟机内存结构JVM的主要结构如下图所示方法区和堆由所有线程共享,其他区域都是线程私有的程序计数器(Program Counter Register)类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节码,由于多线程间切换时要恢复每一个线程的当前执行位置,所以每个线程都有自己的程序计算器。这一个区域不会有OutOfMemeryError。当执行Java方法时,这里存储...
2018-04-18 16:28:21 396
原创 spring技术详解
Spring IOC设计原理解析:本文乃学习整理参考而来一、 什么是Ioc/DI?二、 Spring IOC体系结构(1) BeanFactory(2) BeanDefinition三、 IoC容器的初始化1、 XmlBeanFactory(屌丝IOC)的整个流程2、 FileSystemXmlApplicationContext 的IOC容器流程1、高富帅IOC解剖2、 设置资源加载器和资源定位...
2018-04-18 11:39:06 718
原创 Java对象的生命周期与垃圾回收以及四种引用
创建对象的方式用new语句创建对象。使用反射,调用java.lang.Class或java.lang.reflect.Constructor的newInstance()实例方法。调用对象的clone()方法使用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。 还有其他一些隐式创建对象的方法: 对于java命令中的每个命令行参数,Java虚拟机...
2018-04-18 11:04:26 1916
原创 手动AOP的实现的几种方式
静态AOP在编译期,切面直接以字节 码的形式编译到目标字节 码文件中。AspectJ属于静态AOP,是在编译时进行增强,会在编译的时候将AOP逻辑织入到代码中,需要专有的编译器和织入器。优点:被织入的类性能不受影响。缺点:不够灵活动态AOPJDK动态代理在运行期,目标类加载后,为接口动态生成代理类,将切面植入到代理类中。Java从1.3引入动态代理。实现原理是为被代理的业务接口生成代理类,将AOP...
2018-04-18 10:26:47 1059
原创 Java的四种引用方式使用详解
Java的四种引用方式java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括 强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。下面来阐述一下这四种类型引用的概念:1.强引用 是指创建一个对象并把这个对象赋给一...
2018-04-18 10:25:53 483
原创 Java的四种引用方式
Java的四种引用方式java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象。java对象的引用包括 强引用,软引用,弱引用,虚引用Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。下面来阐述一下这四种类型引用的概念:1.强引用 是指创建一个对象并把这个对象赋给一...
2018-04-17 17:38:00 315
原创 JVM 引用机制
理解 Java 的 GC 与 幽灵引用 Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference (传说中的幽灵引用 呵呵), 这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景 : 1. Strong Refere...
2018-04-17 17:35:39 217
原创 java.IO层次体系操作详解
java.IO层次体系结构 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了 Java I/O主要包括如下几个层次,包含三个部分: 1.流式部分――IO的主...
2018-04-17 17:03:41 426
原创 JVM MAT使用分析详解
MAT简介MAT是一款非常强大的内存分析工具,在Eclipse中有相应的插件,同时也有单独的安装包。在进行内存分析时,只要获得了反映当前设备内存映像的hprof文件,通过MAT打开就可以直观地看到当前的内存信息。一般说来,这些内存信息包含:所有的对象信息,包括对象实例、成员变量、存储于栈中的基本类型值和存储于堆中的其他对象的引用值。所有的类信息,包括classloader、类名称、父类、静态变量等...
2018-04-17 15:11:19 5186
原创 Greenplum详解
一、Greenplum的发展历史Greenplum的发展可以分为下面6个阶段:图 1 Greenplum时间线Postgres关系型数据库。Postgres是UC Berkeley开发的关系型数据库,现已更名为PostgreSQL。PostgerSQL官网介绍自己是最先进的数据库,有强大的SQL支持能力,扩展性好,并且支持空间扩展。通过空间数据引擎PostGIS的支持可以存储和操作空间数据。 SQ...
2018-04-11 10:47:14 10021 2
ReceiverCleanupUtility
2018-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人