
Java基础
文章平均质量分 65
努努要要
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spymemcached操作队列分析
Spymemcached是一个Memcached(一个高性能内存对象缓存系统)的开源客户端程序。其他MC客户端还有xmemcached、Memcached Client for Java等。我们使用MC客户端程序与MC服务端通信,实现set、get缓存的操作,MC支持的协议类型包括:ASCII 文本协议和二进制协议。 Spymemcached使用Java NIO来实现,并且是单线程的,也就原创 2016-04-20 20:54:26 · 1013 阅读 · 0 评论 -
Netty中ChannelHandler共享数据的方式
(一)成员变量public class DataServerHandler extends SimpleChannelHandler { // 成员变量 private boolean loggedIn; @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {原创 2016-04-20 20:52:51 · 12900 阅读 · 2 评论 -
MySQL应用并发优化实践
测试环境 应用结构: JWS(基于Play定制)+2次库表写入+分库分表 目标:TPS=5000 测试工具:Jmeter、Sysbench 并发线程:16 性能目标 TPS>=5000 现状 采用Jmeter在16并发场景下测试2分钟,最终并发在1200-1300之间,距离性能目标比较遥远。 优化过程 首先考虑可能是代码某个地方有问题,暂时没有考虑数据库原创 2016-04-20 20:51:52 · 528 阅读 · 0 评论 -
JVM的Heap Memory和Native Memory
JVM管理的内存可以总体划分为两部分:Heap Memory和Native Memory。前者我们比较熟悉,是供Java应用程序使用的;后者也称为C-Heap,是供JVM自身进程使用的。Heap Memory及其内部各组成的大小可以通过JVM的一系列命令行参数来控制,在此不赘述。Native Memory没有相应的参数来控制大小,其大小依赖于操作系统进程的最大值(对于32位系统就是3~4G,各种系统原创 2016-04-20 20:49:52 · 16556 阅读 · 1 评论 -
Java集合框架源码分析之LinkedList
开篇寄语:与其期盼未来,不如专注当前。 总述: LinkedList是一种底层采用链表数据结构实现的List,它自然也具备List的特点,允许重复元素。 1. 类声明: public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Seriali原创 2014-03-01 15:16:59 · 751 阅读 · 0 评论 -
Java集合框架源码分析之ArrayList
ArrayList是一个允许重复元素的结合类,内部通过数组来实现元素存储。 首先,来看看ArrayList的类声明: public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable 很明显,ArrayList实现了四个接口,如果你打开这原创 2014-02-21 01:45:18 · 702 阅读 · 0 评论 -
Java NIO写事件处理技巧
问题背景 OP_WRITE事件是在Socket发送缓冲区中的可用字节数大于或等于其低水位标记SO_SNDLOWAT时发生。正常情况下,都是可写的,因此一般不注册写事件。所以一般代码如下: while (bb.hasRemaining()) { int len = socketChannel.write(bb); 取消 if (len < 0) { throw new E原创 2016-04-20 20:10:53 · 1992 阅读 · 0 评论 -
C3P0连接超时分析
背景知识 c3p0是一个开源的、基于Java JDBC 规范的连接池管理框架。 官网地址:[http://www.mchange.com/projects/c3p0/] 获取连接的过程 c3p0构造了一个Connection对象池。 在对象池中有空闲对象时或者没有达到对象池最大数量时,获取Connection都会成功返回。但是要注意,获取到的Connection不一定是可用的原创 2016-04-20 20:47:52 · 5573 阅读 · 0 评论 -
Java程序通用场景性能分析
##问题场景 本地程序调用多个HTTP接口获取远端数据,然后拼装数据生成多个本地文件。##性能分析 > 实际上这个场景分为以下两步,我们实际需要分析影响每一步性能的因素,并进行优化。 1. 调用远程HTTP接口 本地和远端代码运行耗时占比不会很高,因为这都是CPU和内存操作,而真正耗时的应该是两者之间的网络交互; 2. 拼装数据并写本地文件 同理,对于CPU和内存操作的拼装数据来原创 2016-04-23 08:13:30 · 880 阅读 · 0 评论