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

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

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

    Chan Chen Coding...

    關于memcache取多值的性能比較

    測試代碼
            List<Integer> lids = new ArrayList<Integer>();
            for(int i = 0; i < 10000; i++){
                lids.add(i);
            }
            lids.add(8700);
            lids.add(8703);
            Map<Integer, Integer> map = new HashMap();
            long startTime = System.currentTimeMillis();
            map = playlistServiceClient.getPlaylistPlaytimsByLids(lids);
            long endTime = System.currentTimeMillis();
            logger.info((endTime - startTime)  + " millseconds");
    一次性去memcache多值的代碼
        /**
         * 獲取豆單的歷史播發總數
         * 
         * 
    @param lid
         *          豆單ID
         * 
    @return 個數
         
    */
        public int getPlaylistPlaytimsByLid(int lid) {
            Object cacheResult = ptsMemcacheClient.get(PLAYLIST_PTS_KEY_PL_HIS_PT + lid);
            String key = PLAYLIST_PTS_KEY_PL_HIS_PT + lid;
            if (cacheResult != null) {
                return Integer.parseInt((String) cacheResult);
            } else {
                return -1;
            }
        }

        /**
         * 獲取豆單列表的歷史播發總數
         * 
         * 
    @param lids
         *          豆單ID列表
         * 
    @return 個數
         
    */
        public Map<Integer, Integer> getPlaylistPlaytimsByLids(List<Integer> lids) {
            if (CollectionUtils.isEmpty(lids)) {
                return Collections.EMPTY_MAP;
            }
            Map<Integer, Integer> result = new HashMap<Integer, Integer>();
            int size = lids.size();
            String[] keys = new String[lids.size()];
            for (int i = 0; i < size; i++) {
                keys[i] = PLAYLIST_PTS_KEY_PL_HIS_PT + lids.get(i);
            }
            Map<String, Object> cacheMap = ptsMemcacheClient.getMulti(keys);
            for (int i = 0; i < size; i++) {
                Object value = cacheMap.get(PLAYLIST_PTS_KEY_PL_HIS_PT + lids.get(i));
                result.put(lids.get(i), (value == null) ? -1 : Integer.parseInt((String) value));
            }
            return result;
        }
    性能
     2013-04-26 15:09:22 [com.tudou.programs.action.TestAction]-[INFO] lid : 99
     2013-04-26 15:09:22 [com.tudou.programs.action.TestAction]-[INFO] 99: -1
     2013-04-26 15:09:22 [com.tudou.programs.action.TestAction]-[INFO] 363 millseconds
     2013-04-26 15:09:33 [com.tudou.programs.action.TestAction]-[INFO] lid : 8700
     2013-04-26 15:09:33 [com.tudou.programs.action.TestAction]-[INFO] 8700: 33
     2013-04-26 15:09:33 [com.tudou.programs.action.TestAction]-[INFO] 115 millseconds
     2013-04-26 15:09:39 [com.tudou.programs.action.TestAction]-[INFO] lid : 8701
     2013-04-26 15:09:39 [com.tudou.programs.action.TestAction]-[INFO] 8701: 33
     2013-04-26 15:09:39 [com.tudou.programs.action.TestAction]-[INFO] 50 millseconds
     2013-04-26 15:09:42 [com.tudou.programs.action.TestAction]-[INFO] lid : 8701
     2013-04-26 15:09:42 [com.tudou.programs.action.TestAction]-[INFO] 8701: 33
     2013-04-26 15:09:42 [com.tudou.programs.action.TestAction]-[INFO] 52 millseconds
     2013-04-26 15:09:43 [com.tudou.programs.action.TestAction]-[INFO] lid : 8701
     2013-04-26 15:09:43 [com.tudou.programs.action.TestAction]-[INFO] 8701: 33
     2013-04-26 15:09:43 [com.tudou.programs.action.TestAction]-[INFO] 57 millseconds
      2013-04-26 15:10:21 [com.tudou.programs.action.TestAction]-[INFO] lid : 10000
     2013-04-26 15:10:21 [com.tudou.programs.action.TestAction]-[INFO] 10000: -1
     2013-04-26 15:10:21 [com.tudou.programs.action.TestAction]-[INFO] 78 millseconds

    多次從memcache取值的代碼
                /**
         * 獲取豆單的歷史播發總數
         * 
         * 
    @param lid
         *          豆單ID
         * 
    @return 個數
         
    */
        public int getPlaylistPlaytimsByLid(int lid) {
            Object cacheResult = ptsMemcacheClient.get(PLAYLIST_PTS_KEY_PL_HIS_PT + lid);
            String key = PLAYLIST_PTS_KEY_PL_HIS_PT + lid;

            if (cacheResult != null) {
                return Integer.parseInt((String) cacheResult);
            } else {
                return -1;
            }
        }

        /**
         * 獲取豆單列表的歷史播發總數
         * 
         * 
    @param lids
         *          豆單ID列表
         * 
    @return 個數
         
    */
        public Map<Integer, Integer> getPlaylistPlaytimsByLids(List<Integer> lids) {
            if (CollectionUtils.isEmpty(lids)) {
                return Collections.EMPTY_MAP;
            }
            HashMap<Integer, Integer> resultMap = new HashMap<Integer, Integer>();
            for (Integer lid : lids) {
                resultMap.put(lid, getPlaylistPlaytimsByLid(lid));
            }
            return resultMap;
        }
            
    性能
    2013-04-26 15:13:03 [com.tudou.programs.action.TestAction]-[INFO] lid : 10000
     2013-04-26 15:13:03 [com.tudou.programs.action.TestAction]-[INFO] 10000: -1
     2013-04-26 15:13:17 [com.tudou.programs.action.TestAction]-[INFO] 14206 millseconds
     2013-04-26 15:13:27 [com.tudou.programs.action.TestAction]-[INFO] lid : 8700
     2013-04-26 15:13:27 [com.tudou.programs.action.TestAction]-[INFO] 8700: 33
    2013-04-26 15:13:41 [com.tudou.programs.action.TestAction]-[INFO] 13703 millseconds
     2013-04-26 15:14:25 [com.tudou.programs.action.TestAction]-[INFO] lid : 99
     2013-04-26 15:14:25 [com.tudou.programs.action.TestAction]-[INFO] 99: -1
     2013-04-26 15:14:38 [com.tudou.programs.action.TestAction]-[INFO] 13457 millseconds

    結論,一次取多值的性能要高于多次取值。

    -----------------------------------------------------
    Silence, the way to avoid many problems;
    Smile, the way to solve many problems;

    posted on 2013-04-26 15:42 Chan Chen 閱讀(312) 評論(0)  編輯  收藏 所屬分類: Scala / Java

    主站蜘蛛池模板: 九九免费久久这里有精品23| 亚洲精品人成网在线播放影院 | 亚洲精品国产精品乱码不卡√| 免费一区二区无码视频在线播放 | 中文字幕天天躁日日躁狠狠躁免费| 亚洲国产精品成人精品无码区 | 高清永久免费观看| 亚洲精品无码成人片在线观看| 色网站在线免费观看| 亚洲国产精品尤物YW在线观看| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲最大成人网色| 免费人成黄页在线观看日本| 亚洲人成网www| 在线观看无码AV网站永久免费 | 人妻在线日韩免费视频| 亚洲精品乱码久久久久久按摩| 亚洲黄片手机免费观看| 亚洲综合图色40p| 免费国产黄网站在线观看| 亚洲av成人综合网| 国产免费av片在线播放| aa级女人大片喷水视频免费| 久久久久久a亚洲欧洲AV| 成人免费激情视频| 男男gay做爽爽的视频免费| 77777亚洲午夜久久多人| 精品久久久久久国产免费了 | 99在线精品免费视频九九视| 理论亚洲区美一区二区三区| 亚洲成片观看四虎永久| 久久伊人免费视频| 亚洲国产精品自在自线观看| 亚洲最大av无码网址| 国产免费一区二区三区| 无码日韩人妻AV一区免费l | 国产成人一区二区三区视频免费| 亚洲AV成人影视在线观看| 国产乱子伦精品免费无码专区| 拍拍拍无挡视频免费观看1000 | 亚洲日本中文字幕天天更新|