<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

    主站蜘蛛池模板: 日韩亚洲欧洲在线com91tv| 国产免费黄色大片| 久久久亚洲AV波多野结衣| 在线看免费观看AV深夜影院| 国产精品亚洲片在线观看不卡 | 亚洲?V乱码久久精品蜜桃| 又粗又大又长又爽免费视频 | 国产成人免费a在线视频色戒| 国产a v无码专区亚洲av| 美女的胸又黄又www网站免费| 日本不卡免费新一二三区| 亚洲AV无码第一区二区三区| 久久久久久AV无码免费网站| 免费国内精品久久久久影院| 美女被羞羞网站免费下载| 久久久久噜噜噜亚洲熟女综合| 国产精品免费久久久久久久久| 亚洲人成网77777亚洲色| 182tv免费视频在线观看| 亚洲国产精品视频| 亚洲av无码专区青青草原| 亚洲美女视频免费| 久久精品国产亚洲AV麻豆不卡| 日韩电影免费在线观看| 亚洲精品国偷自产在线| 99视频有精品视频免费观看| 国产亚洲美日韩AV中文字幕无码成人| 久久99久久成人免费播放| 亚洲国产成人久久综合野外| 国产一级在线免费观看| 亚洲福利视频一区二区三区| 免费鲁丝片一级在线观看| 亚洲午夜一区二区电影院| 最刺激黄a大片免费网站| 亚洲国产精品嫩草影院在线观看| 久久青草免费91线频观看站街| 亚洲人成影院77777| 亚洲日本在线观看视频| 日本zzzzwww大片免费| 亚洲免费一级视频| 免费又黄又爽的视频|