- 博客(14)
- 资源 (3)
- 收藏
- 关注
原创 Tokyo Tyrant 与 Redis 的一些简单比较
之前简单的看了一下 Tokyo Tyrant(包括 Tokyo Cabint) 在 hash 存储上的一些实现,最近 Redis 又比较火热,因此,自己也尝试性的去了解了一下 Redis,并且结合 Tokyo Tyrant(以下简称 tt server),说说自己对这两种产品的看法。抛砖引玉,可能有些地方说的不好,欢迎大家拍砖,指正。 目录服务端处理模型数据存储方式、持久...
2011-11-17 12:44:59
158
转载 Java NIO 那些躲在角落的细节
原文来自: java nio 选择器请关注:黄金档java NIO的实现中,有不少细节点非常有学习意义的,就好比下面的三个点:1) Selector的 wakeup原理是什么?是如何实现的?2) Channel的close会做哪些事?3) 会什
2011-08-30 12:54:05
3663
好站推荐
本博客现在会顶置一个帖子,介绍一些非常好的网站,也欢迎大家推荐更多的好的网站。 GoldenDoc 黄金档 。这是我所在的团队博客,有关技术,开源,对一些基础技术的研究是比较深入的。打好基础,才是最最重要的。下面是关于黄金档的资料: Golden Doc写道goldendoc,致力于对开源框架的分析和研究。对于程序员来说,我们生活在一个框架的世界里。每一个...
2011-07-23 14:05:31
196
J2SE 5.0的HotSpot JVM上的GC学习 - CMS GC
Concurrent mark sweep GC很多应用对响应时间的要求要大于吞吐量。YGC并不暂停多少时间,但FGC对时间的暂用还是很长的。特别是在年老区使用的空间较多时。因此, HotSpot引入了一个叫做CMS的收集器,也叫低延时收集器。CMS的YGC与并行GC同样的方式: stop-the-world 加上 copy。CMS的FGCCMS的FGC...
2011-04-20 19:38:10
139
J2SE 5.0的HotSpot JVM上的GC学习 - ParallelCompactingGC
Parallel Compacting GCparallelCompactingGC是在J2SE5.0 update6 引入的。parallel compacting GC 与 parallel GC的不同地方,是在年老区的收集使用了一个新的算法。并且以后,parallel compacting GC 会取代 parallem GC的。YGC的并行压缩GC与并行GC使用的算...
2011-04-06 23:17:26
177
J2SE 5.0的HotSpot JVM上的GC学习 - ParallelGC
并行GC现在已经有很多java应用跑在多核的机器上了。并行的GC,也称作吞吐量GC,这种GC把多个CPU都用上了,不让CPU再空转。YGC的并行GCYGC的情况,还是使用stop-the-world + 复制算法的GC。只不过是不再串行,而是充分利用多个CPU,减少GC负荷,增加吞吐量。如下图,串行YGC和并行YGC的比较:年老区的并行GC也是和串行...
2011-04-05 20:42:47
121
J2SE 5.0的HotSpot JVM上的GC学习 - SerialGC
串行GC 串行GC,只使用单个CPU,并且会stop the world。young 的串行GC如下图: 当发生ygc的时候,Eden和From的survivor区会将被引用的对象复制到To这个survivor种。如果有些对象在To survivor放不下,则直接升级到年老区。当YGC完成后,内存情况如下图:old区的串行GC年老区和...
2011-04-04 12:52:44
108
J2SE 5.0的HotSpot JVM上的GC学习 - 分代、GC类型、快速分配
HotSpot上的分代分成三部分:年轻代、年老代、永久代很多的对象一开始是分配在年轻代的,这些对象在熬过了一定次数的young gc之后,就进入了年老代。同时,一些比较大的对象,一开始就可能被直接分配到年老代中(因为年轻代比较小嘛)。年轻代年轻代也进行划分,划分成:一个Eden和两个survivor。如下图: 大部分的对象被直接分配到年轻代的eden区(...
2011-04-02 14:02:03
123
线上排查问题的利器——Btrace
之前Btrace只是听说过,但还没有具体的用到。最近在排查线上问题的时候,使用了Btrace,发现Btrace真是在关键时候的利器。 Btrace是一个安全,可以动态跟踪java程序的一种工具。他的操作不会对原有java进程产生影响,不用关闭正在运行的java进程,也不会修改java进程中的逻辑和数据。因此...
2011-03-27 20:24:09
133
分代回收
什么是分代 当使用分代回收技术,内存会被分为几个代(generation)。也就是说,按照对象存活的年龄,把对象放到不同的代中。使用最广泛的代,应属年轻代和年老代了。根据各种GC算法的特征,可以相应的被应用到不同的代中。研究发现:大部分的对象在分配后不久,就不被引用了。也就是,他们在很早就挂了。只有很少的对象熬过来了。年轻代的GC相当的频繁,高效率并且快。因为年轻代...
2011-03-27 11:21:01
129
几个评估GC性能的指标
吞吐量 应用花在非GC上的时间百分比GC负荷 与吞吐量相反,指应用花在GC上的时间百分比暂停时间 应用花在GC stop-the-world 的时间GC频率 顾名思义Footprint 一些资源大小的测量,比如堆的大小反应速度 从一个对象变成垃圾道这个对象被回收的时间一个交互式的应用要求暂停时间越少...
2011-03-24 19:25:50
765
JVM GC学习笔记
以下是在学习 http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf 之后所做的学习笔记。请大家看后多拍砖,多交流GC学习笔记,在下文中,GC即作为动词,又可作为名词:)GC特性以及各种GC的选择GC性能指标分代回收J2SE 5...
2011-03-20 20:10:42
113
GC特性以及各种GC的选择
垃圾回收器的特性该回收的对象一定要回收,不该回收的对象一定不能回收一定要有效,并且要快!尽可能少的暂停应用的运行需要在时间,空间,回收频率这三个要素中平衡内存碎片的问题(一种解决内存碎片的方法,就是压缩)可扩展性和可伸缩性(内存的分配和回收,不应该成为跑在多核多线程应用上的瓶颈)对垃圾回收器的选择连续 VS. 并行连续垃圾回收器,即使在多核的应用...
2011-03-20 20:03:04
666
iptables历险记
背景这几天在做开发联调的时候,出现了这样一种情况:我的应用本身开启的是24100端口,但别的应用却是调用我的80的端口。本来我把端口重新配置一下,编译重启应用就OK的事情。但想想UED还在用我的24100端口,真是个棘手的事情。 由于时间紧急,所以就弄了一个最简单的方案:把 httpd 停掉,在配置文件中新增一个80端口的监听,重启 httpd。 事后想想,看有没有别的方法...
2011-01-27 21:40:43
124
Reactive Programming in Kotlin PDF
2018-07-10
Python GUI Programming Cookbook, 2nd Edition-Packt Publishing(2017)
2017-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人