知识大全 Java程序性能优化-缓存(Cache)(1)

Posted

篇首语:与其积攒满箱子的金银,不如积攒满肚子的学问。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java程序性能优化-缓存(Cache)(1)相关的知识,希望对你有一定的参考价值。

Java程序性能优化-缓存(Cache)(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     缓存(Cache)( )

  缓存(Cache)也是一块为提升系统性能而开辟的内存空间 缓存的主要作用是暂存数据处理结果 并提供下次访问使用 在很多场合 数据的处理或者数据获取可能会非常费时 当对这个数据的请求量很大时 频繁的数据处理会耗尽CPU资源 缓存的作用就是将这些来之不易的数据处理结果暂存起来 当有其他线程或者客户端需要查询相同的数据资源时 可以省略对这些数据的处理流程 而直接从缓存中获取处理结果 并立即返回给请求组件 以此提高系统的响应时间

  缓存的使用非常普遍 比如 目前流行的几种浏览器都会在本地缓存远程的页面 从而减少远程HTTP访问次数 加快网页的加载速度 又比如 在服务端的系统开发中 设计人员可以为一些核心API加上缓存 从而提高系统的整体性能

  最为简单的缓存可以直接使用HashMap实现 当然 这样做会遇到很多问题 比如 何时应该清理无效的数据 如何防止缓存数据过多而导致内存溢出等 一个稍好的替代方案是直接使用WeakHashMap 它使用弱引用维护一张哈希表 从而避免了潜在的内存溢出问题 但是 作为专业的缓存 它的功能也略有不足

  注意 缓存可以保存一些来之不易的数据或者计算结果 当需要再次使用这些数据时 可以从缓存中低成本地获取 而不需要再占用宝贵的系统资源

  幸运的是 目前有很多基于Java的缓存框架 比如EHCache OSCache和JBossCache等 EHCache缓存出自Hibernate 是Hibernte框架默认的数据缓存解决方案 OSCache缓存是由OpenSymphony设计的 它可以用于缓存任何对象 甚至是缓存部分JSP页面或者HTTP请求 JBossCache是由JBoss开发 可用于JBoss集群间数据共享的缓存框架

  下面 以EHCache缓存为例 简单介绍一下缓存的基本使用方法

  在使用EHCache前 需要对EHCache进行必要的配置 一个典型的配置可能如下

  <ehcache>

  <diskStore path= data/ehcache />

  <defaultCache maxElementsInMemory= eternal= false

  overflowToDisk= true timeToIdleSeconds= timeToLiveSeconds=

  diskPersistent= false diskExpiryThreadIntervalSeconds= />

  <cache name= cache maxElementsInMemory= eternal= false

  timeToIdleSeconds= timeToLiveSeconds= overflowToDisk= true

  diskPersistent= false />

  <cache name= cache maxElementsInMemory= eternal= false

  timeToIdleSeconds= timeToLiveSeconds= overflowToDisk= false

  diskPersistent= false />

  </ehcache>

  以上配置文件首先设置了一个默认的cache模版 在程序中使用EHCache接口动态生成缓存时 会使用这些参数定义新的缓存 随后 定义了两个缓存 名字分别是cache 和cache

  配置文件中一些主要参数的含义如下

  maxElementsInMemory:该缓存中允许存放的最大条目数量

  eternal:缓存内容是否永久储存

  overflowToDisk:如果内存中的数据超过maxElementsInMemory 是否使用磁盘        存储

  timeToIdleSeconds:如果不是永久储存的缓存 那么在timeToIdleSeconds指定时间内没有访问一个条目 则移除它

  timeToLiveSeconds:如果不是永久储存的缓存 一个条目可以存在的最长时间

  diskPersistent:磁盘储存的条目是否永久保存

  diskExpiryThreadIntervalSeconds:磁盘清理线程的运行时间间隔

  EHCache使用简单 可以像使用HashMap一样使用它 但为了能够更方便地使用EHCache 笔者还是对EHCache进行了简单的封装 提供了EHCacheUtil工具类 专门针对EHCache做各种操作

  首先是EHCache的初始化操作

  static

  try

  //载入EHCache的配置文件 创建CacheManager

  manager = CacheManager create

  (EHCacheUtil class getClassLoader() getResourceAsStream(configfile))

   catch (CacheException e)

  e printStackTrace()

  

  

       返回目录 Java程序性能优化 让你的Java程序更快 更稳定

  编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

       J ME移动开发实战教学视频

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

cha138/Article/program/Java/gj/201311/27804

相关参考

知识大全 Java程序性能优化-缓存(Cache)(3)

Java程序性能优化-缓存(Cache)(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 Java程序性能优化(1)

Java程序性能优化(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一避免在循环条件中使用

知识大全 Java程序性能优化-负载均衡(1)

Java程序性能优化-负载均衡(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-代理模式(1)

Java程序性能优化-代理模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-缓冲(Buffer)(1)

Java程序性能优化-缓冲(Buffer)(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java程序性能优化-空间换时间[1]

Java程序性能优化-空间换时间[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-享元模式(1)

Java程序性能优化-享元模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-单例模式(1)

Java程序性能优化-单例模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-装饰者模式(1)

Java程序性能优化-装饰者模式(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Java程序性能优化-对象复用“池”(1)

Java程序性能优化-对象复用“池”(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb