oscache使用和研究

          Oscache的使用非常方便,特別是jsp cache用的非常廣泛。Oscache的文檔中也對jsp cache tag的配置有詳細說明,但對如普通pojo對象的cache講的較少,也許是比較簡單的緣故。今天做了個測試方案,寫測試案例進行了比較和研究。

          測試方案1在本機上直接測試,循環(huán)從metabase庫中的process_info表取得數(shù)據(jù)(表中只有2條記錄)比較使用cache和不使用cache的性能(為平均值)。

          代碼如下:

           1public class DatabaseCacheTest extends TestCase {
           2    GeneralCacheAdministrator admin = null;
           3
           4    protected ApplicationContext ctx;
           5
           6    protected ProcessInfoDAO processInfoDAO;
           7
           8    protected void setUp() throws Exception {
           9        String[] paths = "/spring/dataAccessContext.xml",
          10                "/spring/spring-biz-db.xml" }
          ;
          11        ctx = new ClassPathXmlApplicationContext(paths);
          12
          13        processInfoDAO = (ProcessInfoDAO) ctx.getBean("processInfoDAO");
          14        admin = new GeneralCacheAdministrator();
          15    }

          16
          17    protected void tearDown() throws Exception {
          18        admin.destroy();
          19    }

          20
          21    public void testGetFromCache() {
          22        long t1 = System.currentTimeMillis();
          23
          24        for (int i = 0; i < 10000; i++{
          25            ProcessInfoDO pdo = getProcess("65");
          26            assertEquals(pdo.getProcessName(), "TestProcess");
          27        }

          28        System.out.println(System.currentTimeMillis() - t1);
          29
          30    }

          31
          32    private ProcessInfoDO getProcessByCache(String id) {
          33        ProcessInfoDO pdo;
          34        try {
          35            pdo = (ProcessInfoDO) admin.getFromCache("65");
          36            return pdo;
          37        }
           catch (NeedsRefreshException e) {
          38            pdo = processInfoDAO.selectById(65);
          39            admin.putInCache("65", pdo);
          40            return pdo;
          41        }

          42    }

          43
          44    private ProcessInfoDO getProcess(String id) {
          45        return processInfoDAO.selectById(65);
          46    }

          47}

          48


          ?         循環(huán)100次,使用cache用時578ms,直接從數(shù)據(jù)庫取用時2015ms

          ?         循環(huán)1000次,使用cache用時719ms,直接從數(shù)據(jù)庫取用時13984ms

          ?         循環(huán)10000次,使用cache用時2016ms,直接從數(shù)據(jù)庫取用時131188ms

          使用圖例比較,系列1表示循環(huán)的次數(shù),系列2為使用cache的用時,系列3為不使用cache的用時。可以看出,隨著循環(huán)次數(shù)的增多,使用cache方案的性能優(yōu)勢更加明顯。

          結(jié)論:使用cache,隨著循環(huán)的增多,用時增長較緩慢,而不使用cache基本是等比例增長。在循環(huán)次數(shù)較多時,使用cache cpu利用率顯著提高,能達到90%以上。不使用cache則只能上到50%左右,更多是在等待數(shù)據(jù)庫返回結(jié)果。所以使用cache能大大減輕數(shù)據(jù)庫的壓力,提高應(yīng)用服務(wù)器的利用率,符合我們對應(yīng)用服務(wù)器進行水平擴展的要求。

           

           

          posted on 2006-02-16 13:39 pesome 閱讀(4017) 評論(1)  編輯  收藏 所屬分類: 開源軟件

          評論

          # re: oscache使用和研究 2006-02-19 09:23 Jonney

          在OSCache中,使用了硬盤緩存的話似乎不能刪除緩存文件,真是個讓人頭痛的地方……  回復(fù)  更多評論   

          <2006年2月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627281234
          567891011

          導(dǎo)航

          統(tǒng)計

          公告

          主要記錄作者在學(xué)習(xí)java中的每一步足跡。除非特別說明,所有文章均為本blog作者原創(chuàng),如需轉(zhuǎn)載請注明出處和原作者,如用于商業(yè)目的,需跟作者本人聯(lián)系。
          歡迎大家訪問:

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          java技術(shù)

          人間百態(tài)

          朋友們的blog

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 定西市| 安阳县| 寻甸| 个旧市| 永修县| 临泉县| 视频| 张家界市| 绥阳县| 吉水县| 陵川县| 阳朔县| 科技| 炎陵县| 弥勒县| 延寿县| 岑巩县| 二连浩特市| 东丰县| 广灵县| 黄石市| 富锦市| 中超| 山阳县| 慈利县| 象山县| 宁河县| 满洲里市| 拜城县| 东阿县| 资溪县| 且末县| 文登市| 台湾省| 井陉县| 崇义县| 拉萨市| 古交市| 高密市| 仪陇县| 渭南市|