<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ゞ沉默是金ゞ

    魚離不開水,但是沒有說不離開哪滴水.
    posts - 98,comments - 104,trackbacks - 0
    The processing costs for selecting a value from a database-table are fairly high compared to the costs having the value already in memory. So it seems preferrable to use some smart caching-mechanism that keeps often used values in your application instead of retrieving these values from resources somewhere ‘outside’.

    Most frameworks have at least one cache implementation onboard, but there also exist several other implementations of caches like e.g. EHCache. Even ordinary HashMaps/Hashtables can serve as caches also.

    A critial factor when using caches in Java is the size of the cache: when your cache grows too big, the Java Garbage Collector has to cleanup more often (which consumes time) or your application even crashes with a java.lang.OutOfMemoryError.

    One way to control the memory-consumption of caches is to use SoftReferences in HashMaps/Hashtables, another one is to throw away old or unused content by implementing a caching-strategy like e.g. LRU.

    A simple LRU-cache already ships within the components of the Java Standard Library: the LinkedHashMap. All you have to do is to tell your application whether the eldest entry in the map should be retained or removed after a new entry is inserted. Additionally a special constructor has to be used that defines the orderingMode for the map: ‘true’ for access-order (LRU), ‘false’ for insertion-order.

    Suppose we want to cache a mapping of String-Names to String-Ids with a maximum size of 20480 entries.
    How that can be done is shown by the example below with the use of an Anonymous Inner Class that overrides the removeEldestEntry-method of the LinkedHashMap.

    import com.fmr.pzn.wmb.utils.Vaidator;

    import java.util.Collections;
    import java.util.LinkedHashMap;
    import java.util.Map;

    public final class SampleCache {

        private static final float LOAD_FACTOR = 0.75f;

        private static final int CACHE_MAX = 20480;

        private static final int CACHE_INIT = 10000;

        private static final LinkedHashMap<String, String> CACHE_MAP = new LinkedHashMap<String, String>(CACHE_INIT,
                LOAD_FACTOR, true) {

            private static final long serialVersionUID = 628057782352519437L;

            @Override
            protected boolean removeEldestEntry(Entry<String, String> eldest) {
                return size() > SampleCache.CACHE_MAX;
            }

        };


        private SampleCache() {
            super();
        }

        public static void putid(final String id, final String name) {
            if (isEmpty(id) || isEmpty(name)) {
                return;
            }

            CACHE_MAP.put(id, name);
        }

        public static String getByid(final String id) {
            return CACHE_MAP.get(id);
        }

        public static boolean isEmpty(final String field ){
            boolean isEmpty = false;
            if(field == null || field.isEmpty())
            {
                isEmpty = true;
            }
            return isEmpty;
        }
    }
    And based on the high performance environment, this cache will not thread safe. How to fix this small issue? we can use Collections.synchronizedMap() to synchronized cache. like:

        private static final Map<String, String> CACHE_MAP = Collections.synchronizedMap(new LinkedHashMap<String, String>(CACHE_INIT,
                LOAD_FACTOR, true) {

            private static final long serialVersionUID = 628057782352519437L;

            @Override
            protected boolean removeEldestEntry(Entry<String, String> eldest) {
                return size() > SampleCache.CACHE_MAX;
            }

        });

    Now, there is one small cache exists in your application.
    posted on 2012-08-07 16:11 ゞ沉默是金ゞ 閱讀(436) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品色午夜视频免费看| 视频一区在线免费观看| 一区二区免费视频| 亚洲精品无码av片| 欧洲乱码伦视频免费| 亚洲成AⅤ人影院在线观看| 亚洲国产精品一区二区三区在线观看| 亚洲免费二区三区| 在线观看亚洲AV每日更新无码| 特黄特色大片免费| 亚洲国产精品毛片av不卡在线| 一级毛片高清免费播放| 亚洲精品无码专区久久久| 久久久久久亚洲Av无码精品专口| 老司机69精品成免费视频| 亚洲视频一区在线播放| 一级黄色片免费观看| 中文字幕亚洲电影| 在线观看日本亚洲一区| 免费二级毛片免费完整视频| 一级特黄a大片免费| 亚洲国产精品VA在线看黑人| 鲁啊鲁在线视频免费播放| 2048亚洲精品国产| 婷婷亚洲综合五月天小说在线| 久久精品视频免费播放| 亚洲第一精品电影网| 在线观看永久免费视频网站| 国产JIZZ中国JIZZ免费看| 亚洲一区免费观看| 日本特黄特黄刺激大片免费| 51午夜精品免费视频| 亚洲精品影院久久久久久| 国产又大又黑又粗免费视频| a级毛片免费全部播放无码| 91亚洲国产成人久久精品| 国产在线观看免费视频软件| 亚洲日本va午夜中文字幕久久| 永久免费av无码入口国语片| 亚洲av专区无码观看精品天堂 | 久久精品国产亚洲AV麻豆王友容 |