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