<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多值的代碼
        /**
         * 獲取豆單的歷史播發(fā)總數(shù)
         * 
         * 
    @param lid
         *          豆單ID
         * 
    @return 個數(shù)
         
    */
        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;
            }
        }

        /**
         * 獲取豆單列表的歷史播發(fā)總數(shù)
         * 
         * 
    @param lids
         *          豆單ID列表
         * 
    @return 個數(shù)
         
    */
        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取值的代碼
                /**
         * 獲取豆單的歷史播發(fā)總數(shù)
         * 
         * 
    @param lid
         *          豆單ID
         * 
    @return 個數(shù)
         
    */
        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;
            }
        }

        /**
         * 獲取豆單列表的歷史播發(fā)總數(shù)
         * 
         * 
    @param lids
         *          豆單ID列表
         * 
    @return 個數(shù)
         
    */
        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 閱讀(318) 評論(0)  編輯  收藏 所屬分類: Scala / Java

    主站蜘蛛池模板: 亚洲免费福利视频| 亚洲一区二区三区香蕉| 亚洲熟妇av一区二区三区下载| 国产精品午夜免费观看网站| 亚洲精品国产精品乱码不卞 | 精品无码一区二区三区亚洲桃色| 99热在线日韩精品免费| 亚洲日韩国产一区二区三区| 一区二区三区免费视频观看| 亚洲国产成人久久综合区| 乱人伦中文视频在线观看免费| 日本免费一区尤物| 在线观看亚洲电影| 亚洲真人日本在线| 中文字幕免费不卡二区| 久久久久久亚洲AV无码专区| 曰批全过程免费视频播放网站| 亚洲欧洲精品国产区| 成年女人视频网站免费m| 国产精品亚洲精品爽爽| 五月婷婷亚洲综合| 中国性猛交xxxxx免费看| 亚洲A∨无码一区二区三区| 亚洲一区二区三区免费视频| 亚洲影院天堂中文av色| 午夜国产大片免费观看| 在线免费观看h片| 亚洲乱码卡一卡二卡三| 国产网站免费观看| 永久免费av无码入口国语片| 亚洲福利电影一区二区?| 国产成人在线免费观看| 国产在线观a免费观看| 亚洲人成在线播放| 亚洲国产精品专区在线观看| 亚洲av成人综合网| 老司机在线免费视频| 久久亚洲精品无码av| 亚洲第一AV网站| 成人免费一区二区三区在线观看| 四虎影视久久久免费观看|