- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 关于redis、memcache、mongoDB 的对比
从以下几个维度,对redis、memcache、mongoDB 做了对比,欢迎拍砖1、性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb2、操作的便利性 memcache数据结构单一 redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数...
2013-04-11 13:26:39
292
原创 cache的改造过程
一个cache的改造过程在分布式的程序中,cache的合理使用可以带来性能上的极大提升,尤其是在资源创建需要昂贵的开销时。cache的设计最重要的是要保证线程安全和高效性。下面以代码为例,介绍了三种cache的写法。1. 粗放的加锁public class Cache1 { private HashMap route2SG = null; public Cache1() { ...
2013-03-15 20:24:21
183
原创 性能测试原理 - 吞吐量解析
好多人对吞吐量的概念不是很清楚, 有人认为TPS就是吞吐量,也有人把单位时间内系统处理数据量(kilobytes per second)作为吞吐量,那么那个是正确的答案呢? TPS(transaction per second), 顾名思义,是单位时间内处理事物的数量。用TPS做吞吐量的标准比较含糊。因为一个事务的大小,事务的复杂程度不等。这个提法在Jmeter上提到过。它是侧重的是应用场景,...
2013-02-27 10:28:25
1721
原创 LSM-Tree (BigTable 的理论模型)
Google的BigTable架构在分布式结构化存储方面大名鼎鼎,其中的MergeDump模型在读写之间找到了一个较好的平衡点,很好的解决了web scale数据的读写问题。MergeDump的理论基础是LSM-Tree (Log-Structured Merge-Tree), 原文见:LSM Tree下面先说一下LSM-Tree的基本思想,再记录下读文章的几点感受。LSM...
2013-02-25 13:53:56
161
原创 NIO
NIO非堵塞应用通常适用用在I/O读写等方面,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。 Java NIO非堵塞技术实际是采取Reactor模式,或者...
2013-02-21 09:18:13
101
原创 软件腐化的机种表现
软件腐化的机种表现:l 僵化性(Rigidity):一个改动引起一连串的改动,必须改动的模块越多,设计就越僵化。l 脆弱性(Fragility):改一个地方,N个地方都会出问题。l 牢固性(Immobility):设计中包含了一些可供其他系统有用的部分,但又无法剥离出去。l 粘滞性(Viscosity):要修改某些功能,无法沿用之前的设计,而不得不破坏之前的设计。...
2013-02-05 14:31:53
212
原创 为什么要使用NIO
为什么要使用NIO企业级应用效率是关键。而CPU已不再是的束缚,效率主要消耗在IO上。java.io类则喜欢一铲子一铲子地加工数据。而操作系统喜欢整卡车地运来数据,有了NIO,就可以轻松地把一卡车数据备份到您能直接使用的地方(ByteBuffer对象)。IO的常用概念IO操作:向操作系统发出请求,把数据移出和移入缓冲区。用户空间:是常规进程所在区域。JVM就是常规进程,驻守于用...
2013-02-05 14:01:55
343
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人