国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

緩存優化實驗報告

only_do / 2330人閱讀

摘要:銷售助手緩存優化實驗報告問題背景移動銷售助手又名外勤通,個別頁面訪問非常慢,急需優化。結論二對于簡單的,無須從優化為緩存。

銷售助手-緩存優化實驗報告
2015.4.7 by ouyida3

問題背景

移動APP-銷售助手(又名外勤通),個別頁面訪問非常慢,急需優化。

實驗環境

Oracle數據庫:測試環境32.121.2.132(性能還行,但發現偶爾會有問題)

后臺WEB應用:本機環境MyEclipse+Weblogic(本機暫時發現很好,完全沒有性能瓶頸)

前臺MAPP應用:測試環境30.51.23.250(該機器是svn服務器,性能不怎么樣)

手機APP應用:iphone5,ios8.2安裝(沒有性能瓶頸)

優化手段

某些表使用Ehcache把數據通過Key-Value緩存,不用每次均從數據庫取數。

優化代碼:
詳見:/mapp/src/com/age/mapp/bean/MappTaskBean.java

修改前,每次均讀取oracle的方法:

javacomdao.getStaticValue
修改后,只第一次從oracle讀取,第二次以后從緩存讀取:CacheUtils.getStaticValue
代碼如下:
// 優化效率,改為讀取緩存 author Ouyida3 2015.4.4
//taskmap.put("URGENT", comdao.getStaticValue(task.getString("URGENT"), "MAPP_EMERGENT_TYPE")); 
taskmap.put("URGENT", CacheUtils.getStaticValue(task.getString("URGENT"), "MAPP_EMERGENT_TYPE", pd));

為了測試使用時間,在前后均加上時間的打印代碼:

java// 增加時間差顯示,優化效率時使用 2015.4.4
Date beginDate = null;
if (log.isDebugEnabled()) {
    beginDate = new java.util.Date();
}

taskmap.put("URGENT", CacheUtils.getStaticValue(task.getString("URGENT"), "MAPP_EMERGENT_TYPE", pd));

// 增加時間差顯示,優化效率時使用 author OuyangDa 2015.4.4
if (log.isDebugEnabled()) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
    Date endDate = new Date();
    String beginTime = sdf.format(beginDate);
    String endTime = sdf.format(endDate);

    log.debug("請求和返回時間分別是:" + endTime + " , " + beginTime);
}

修改前的時間占用
連續進行了5次測試。第一次和第三次分別占用了15和16毫秒,其余均占用0毫秒。證明即使連接oracle,也不是每次都占用毫秒級的時間,應該是oracle內部作了優化,把同樣的sql放到緩存池了,提高了命中率。

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:46:12 039 , 2015-04-07 14:46:12 024

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:46:35 539 , 2015-04-07 14:46:35 539

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:46:59 149 , 2015-04-07 14:46:59 133

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:47:47 117 , 2015-04-07 14:47:47 117

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:48:11 117 , 2015-04-07 14:48:11 117

修改后的時間占用
第一次訪問,使用時間均為16毫秒。重啟了weblogic,再次試驗,第一次訪問還是為16毫秒。

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:34:45 961 , 2015-04-07 14:34:45 945

第二次以后的訪問,使用時間均為0毫秒。說明此時的占用時間已經是微妙級以下。

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:28:36 524 , 2015-04-07 14:28:36 524

  

DEBUG(MappTaskBean) 請求和返回時間分別是:2015-04-07 14:36:26 695 , 2015-04-07 14:36:26 695

實驗結論
結論一

第一次連接Oracle數據庫的時間:大約16毫秒

一模一樣的SQL,第二次以后連接Oracle數據庫的時間:大多數為0毫秒,偶然會占用大約16毫秒

從Ehcache取數時間:大約0毫秒
也就是說從Oracle取數與從Ehcache緩存里取數,相差的時間大約為16毫秒。

結論二

對于簡單的SQL,無須從Oracle優化為緩存。

因為簡單的SQL,只要每次都能在Oracle里命中,從Oracle里取數也能達到0毫秒的性能。

ouyida3的segmentfault的blog
2015.4.7

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61770.html

相關文章

  • 精讀《Nodejs V12》

    摘要:更好的安全性隨著的發布,從升級到了,更安全且更易配置。通過使用,程序可以減少握手所需時間來提升請求性能。提供診斷報告有一項實驗功能,根據用戶需求提供診斷報告,包括崩潰性能下降內存泄露使用高等等。前端精讀幫你篩選靠譜的內容。 1. 引言 Node12 發布有幾個月了,讓我們跟隨 Nodejs 12 一起看看 Node12 帶來了哪些改變。 2. 概述 Node12 與以往的版本不同,帶來...

    CoderStudy 評論0 收藏0
  • 前端每周清單第 44 期: 2017 JS 調查報告、REST 接口實時化、ESM 的過去與未來

    摘要:巔峰人生年老兵思路上的轉變,遠比單純提升技術更有價值本文節選自趙成教授在極客時間開設的趙成的運維體系管理課,是其對自己十年技術生涯的回顧與總結。趙成教授來自美麗聯合集團,集團旗下兩大主力產品是蘑菇街和美麗說,目前負責管理集團的技術服務團隊。 showImg(https://segmentfault.com/img/remote/1460000012476504?w=1240&h=826...

    MASAILA 評論0 收藏0
  • Node 12 值得關注的新特性

    摘要:啟動速度大幅提升。同時,通過重用主進程緩存,的啟動速度提升了。在已經引入的特性,在里面默認啟用,無需使用開啟。相關介紹診斷報告提供了新的實驗性功能診斷報告,一個非常有用的特性。升級為,增強安全功能。 前言 時隔一年,Node.js 12 如約而至,正式發布第一個 Current 版本。 該版本帶來了諸如: V8 更新帶來好多不錯的特性。 HTTP 解析速度提升。 啟動速度大幅提升。 更好的...

    springDevBird 評論0 收藏0
  • 訓練神經網絡的最快方法:Adam優化算法+超級收斂

    摘要:在實踐中,幾乎總是通過向梯度增加來實現算法,而不是真正改變損失函數。顯然這是兩種不同的方法。那么,權重衰減是不是總比的正則化更好呢我們還沒發現明顯更糟的情況,但無論是遷移學習問題例如斯坦福汽車數據集上的的微調還是 跌宕起伏的 Adam縱觀 Adam 優化器的發展歷程,就像過山車一樣。它于 2014 年在論文 Adam: A Method for Stochastic Optimization...

    kohoh_ 評論0 收藏0

發表評論

0條評論

only_do

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<