`
xieke
  • 浏览: 6144 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

memcached, jcs 以及 jdbc直接访问性能对比

阅读更多

使用memcached作为orm缓存实现已经有一段时间了,
今天写了一段测试代码,想看看缓存对系统性能到底有多大提升,结果出乎意料。

测试方法 getById(String id),根据记录id从数据库中查出对象。

1. jdbc版本实现:直接用jdbc执行select方法,代码大致如下
		PreparedStatement pst = null;
		ResultSet set = null;
		
			sql = "select " + TABLECOLUMN + " from " + TABLENAME + " where "
					+ IDCOLUMN + " = '"+id+"'";
			pst = con.prepareStatement(sql);
			set = pst.executeQuery();
			BizObject b = helpSetValue(set); //从set到orm业务对象数据拷贝
			return b;

2.memcached实现,使用whalin客户端实现
		mcc.setCompressEnable( true );
		mcc.setCompressThreshold( 64 * 1024 );
		
		BizObject o = (BizObject)mcc.get(mccid);
		if (o==null){
			o = loadObject(id); //调用jdbc查询,并set到memcached server			
		}
		return o;

具体测试就是循环调用 getById方法 取出指定id,测试结果如下:
执行10次:
jdbc耗时:haoshi 31毫秒
memcached耗时:haoshi 109毫秒
执行100次:
jdbc耗时:haoshi 188毫秒
memcached耗时:haoshi 406毫秒
执行1000次:
jdbc耗时:haoshi 1579毫秒
memcached耗时:haoshi 2435毫秒,

memcache和oracle11g都安装在同一IBMx3650服务器上,
测试结果是在另外一台客户机上运行得到的。
改用jcs本地缓存后,测试1000次循环只需要94毫秒。

oracle和memcached在同一台服务器上(生产机),网络状况应该都一样,排除这个差别,
memcached性能表现竟然比直接jdbc访问要差,我无法理解,
采用memcached意义何在,难道用性能下降的方式来分担数据库压力吗?
或者是说memcached要在大压力下才能获得性能优势?
倒是本地jvm缓存性能提升很大,就是不支持集群。
请教各位,是否我的测试场景有问题?memcached是否适用于企业erp应用?

分享到:
评论

相关推荐

    memcached安装包以及MemCachedClient

    Memcached 是一款高性能的分布式内存缓存系统,用于在Web应用中减轻数据库负载。它将数据存储在内存中,以键值对的形式提供快速访问,尤其适用于高并发场景。Memcached 使用简单,可移植性强,广泛应用于多种编程...

    memcached java客户端驱动包

    例如,可以将频繁访问但计算成本高的数据存储在Memcached中,减少对数据库的依赖。或者,通过设置缓存过期时间,实现动态数据的缓存,提高响应速度。 ### 6. 扩展功能 除了基础操作,驱动包还可能包含其他高级功能...

    memcached&redis;性能测试

    memcached,redis性能测试,内存缓存系统的性能测试;

    memcached性能分析工具

    分析每个slabs的内存使用情况,浪费了多少内存,可用内存等信息。 使用说明: memcached.py 172.16.1.1:11211 # shows slabs memcached.py 172.16.1.1:11211 start...memcached.py 172.16.1.1:11211 get key # get key

    memcached安装包以及java所需的memcached架包

    **memcached** 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据访问速度。它将数据存储在内存中,以键值对的形式提供快速的数据检索服务。memcached的设计目标是简洁和...

    memcached 服务端以及memcached.jar

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,很好的提高了Web性能。Memcached需要有缓存服务端,采用java编程的话还需要memcached.jar,这就是java中实现memcached服务的...

    php memcached安装文档以及Memcached扩展

    1. **下载Memcached**:首先,你需要从官方网站获取最新版的Memcached源码,或者在Windows环境下,可以直接下载编译好的`memcached.exe`。将`memcached.exe`放在一个方便的位置,例如`C:\Program Files`,并确保该...

    linux环境下memcached安装以及配置使用

    Memcached是一款高性能、分布式内存对象缓存系统,用于加速动态Web应用程序的速度,减轻数据库负担。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站性能。 #### 二、Linux环境下Memcached安装...

    内核态memcached模块

    2. **缓存替换策略**:内核态的memcached需要实现一种高效的缓存替换策略,如LRU(最近最少使用)或LFU(最不经常使用),以便在有限的内存资源中保持最佳的数据访问性能。 3. **锁和并发控制**:由于在内核环境中...

    Memcached使用点滴 服务集成平台需要对服务有所监控,包括访问频率控制以及访问次数控制

    Memcached 的主要特点是可以将数据存储在内存中,从而减少对数据库的访问次数,提高系统的性能。 在服务集成平台中,Memcached 可以用来实现访问频率控制和访问次数控制。通过使用 Memcached 的计数器功能,可以...

    memcached 64位 window

    Memcached的工作原理是将数据存储在内存中,避免了频繁读写硬盘导致的I/O延迟,从而提高了数据访问速度。由于其简单的设计和高效的性能,Memcached在许多高流量网站和应用中被广泛应用。 **64位系统的优势** 在64...

    memcached和redis比较

    本文将详细比较这两种技术在可靠性、数据一致性、内存管理、内存使用率、应用场景、性能以及数据恢复等方面的不同之处。 #### 二、可靠性 - **Redis** 支持两种持久化方式:快照(snapshotting)和追加文件(Append ...

    windows下memcached+memcached.dll 5.3.8

    标题中的“Windows下memcached+memcached.dll 5.3.8”指的是在Windows操作系统上安装和使用Memcached...通过安装和配置Memcached,可以显著提升基于PHP的Web应用程序的性能,减少对数据库的直接访问,提高响应速度。

    memcached安装软件 libevent magent memcached

    Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载。它通过在内存中存储数据来提供快速的数据访问,从而提高应用的性能。本篇文章将详细讲解如何安装和配置memcached,...

    memcached服务器端memcached.exe 下载

    Memcached是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的性能。它通过在内存中存储数据来快速访问,避免了反复读取硬盘上的数据,从而提高了应用程序的响应速度。 标题“memcached...

    Memcached Redis MongoDB对比

    在性能上,Redis和Memcached相对比较接近,并且通常高于MongoDB。这主要是因为它们简单的设计和对内存的直接操作,减少了延迟。 操作的便利性: Memcached的数据结构相对单一,仅支持key-value形式的数据,这意味着...

    SSM与memcached整合项目

    在SSM项目中,它可以缓存经常访问的数据,减少对数据库的直接查询,从而提升应用性能。 5. **整合过程**:整合SSM和Memcached通常包括以下几个步骤: - 配置Memcached客户端库,如spymemcached或xmemcached,这些...

    memcached windows 版本 带控制台工具

    Apache通过PHP或其他后端语言与memcached通信,将频繁访问的数据存储在内存中,减少对数据库的直接请求,从而降低服务器响应时间,提高整体性能。 安装和配置memcached for Windows通常包括以下步骤: 1. 下载并...

Global site tag (gtag.js) - Google Analytics