<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 ゞ沉默是金ゞ 閱讀(428) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久午夜免费鲁丝片| 亚洲欧美日韩中文二区| 深夜a级毛片免费无码| 成人免费777777| 亚洲一卡2卡3卡4卡乱码 在线| 57PAO成人国产永久免费视频| 亚洲AV日韩AV永久无码色欲| 日韩成人免费aa在线看| 羞羞视频免费网站在线看| 亚洲成a人不卡在线观看| 免费在线观看理论片| aa午夜免费剧场| 亚洲成人黄色网址| 久久激情亚洲精品无码?V | 在线观看免费高清视频| 国产精品美女免费视频观看| 91丁香亚洲综合社区| 国产成人无码综合亚洲日韩| 日韩精品久久久久久免费| 亚洲综合区图片小说区| 亚洲av成人一区二区三区在线观看| 深夜福利在线免费观看| 亚洲视频在线观看视频| 大陆一级毛片免费视频观看| 一级毛片成人免费看免费不卡| 久久精品国产亚洲av麻豆蜜芽 | 亚洲高清乱码午夜电影网| 337p日本欧洲亚洲大胆精品555588 | 97视频免费在线| a毛片在线还看免费网站| 国产亚洲午夜精品| 亚洲高清国产拍精品26U| 国产午夜无码视频免费网站| 在线视频免费观看高清| 99精品在线免费观看| 久久久WWW成人免费精品| 美女又黄又免费的视频| 亚洲人成色777777老人头| 亚洲成a人片在线网站| 在线免费观看亚洲| 噜噜噜亚洲色成人网站∨|