zoukankan      html  css  js  c++  java
  • Guava源码阅读

    Guava是Google开源出来的Java常用工具集库,包括集合,缓存,并发,字符串,I/O操作等在Java开发过程中经常需要去实现的工具类。

    JoinerSplitterStringsCharMathcer等工具类,其中有许多令人眼前一亮的代码。如Strings.repeat方法里,为了尽可能提升效率采用了native方法System.arrayCopy。如Splitter中,匿名类的灵活使用。如Joiner.appendTo中优雅的解决最后一个分隔符问题。如Splitter.separatorStart中神奇的continue用法。

    Guava还有一个很重要的功能——GuavaCache,平时开发过程中,一般后台会用数据库作为数据存储。稍大的系统中,为了减少db查询耗费的时间,会在前面加一层NoSql作为缓存。但是随着系统规模的增加,缓存的查询压力会越来越大。本地缓存(或者称为热点缓存)这时候可以有效的缓解缓存的压力,特别当某些数据查询十分频繁但修改较少的时候。

    例如,一个官方账号的info数据,几乎每个用户都会用到,很少会有改动。如果按正常得缓存流程,那么每个用户取info时,都会触发一次缓存查询,这会产生很高的tps,如果在每个服务器拿到缓存数据后,存到本地内存中,并设定一个有效期,例如一分钟。那么在一分钟内都不会再去缓存中查询这个数据,相当于直接把tps降到了一分钟一次。当然,这回导致数据更新有一分钟得延迟,多以如果对数据实时性要求非常高的,不适合使用。

    ......

    阅读全文(http://www.lchml.com/blog/2015/07/11/guava-1.html)

  • 相关阅读:
    Ubuntu12.04 安装网卡驱动
    C++类内存分布
    C++多态的实现及原理详细解析
    QT4.7.4在ubuntu10.10下的编译(转)
    FFMpeg处理RTMP流有两种方式
    C++中的单例模式
    C++ STL--stack/queue 的使用方法
    qt编译出现 /usr/bin/ld: cannot find -lQtCore的解决方法
    each()
    window.setTimeout() 和 window.setInterval() 使用说明
  • 原文地址:https://www.cnblogs.com/licheng127/p/LC.html
Copyright © 2011-2022 走看看