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

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

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

    道非道 非常道

    勤思、謹(jǐn)言、慎行、厚積、薄發(fā)

    統(tǒng)計(jì)

    web

    天圓

    經(jīng)濟(jì) 政治 軍事

    鍵康

    [轉(zhuǎn)]10個(gè)影響性能的問(wèn)題

     轉(zhuǎn)自: http://waterfox.javaeye.com/blog/709963

      在最新一期的瑞士電腦雜志中,我們列出了這些年,用我們的客戶端所遇到的10個(gè)影響性能的突出問(wèn)題。我希望這個(gè)列表能夠給大家啟發(fā)。同時(shí),為了更好的了解怎樣解決這些問(wèn)題,我引入了這些博客的鏈接。

        #1 調(diào)用數(shù)據(jù)庫(kù)過(guò)多

         我們見(jiàn)到的最多的問(wèn)題是,每次請(qǐng)求或事務(wù),查詢數(shù)據(jù)庫(kù)的次數(shù)太多。這有3種特殊的現(xiàn)象來(lái)證實(shí)。

       1. 在當(dāng)前事務(wù)的上下文中,請(qǐng)求的數(shù)據(jù)多于實(shí)際需要的數(shù)據(jù)。例如:請(qǐng)求所有用戶信息而不是那些我們要顯示到當(dāng)前屏幕的信息。
       2. 同樣的數(shù)據(jù)被請(qǐng)求多次。這通常發(fā)生在不同的組件在同一個(gè)事務(wù)中彼此獨(dú)立的調(diào)用,并且每次都請(qǐng)求同類數(shù)據(jù)。因?yàn)椴恢滥姆N類型的數(shù)據(jù)已經(jīng)加載到當(dāng)前的上下文中,最終導(dǎo)致多次相同的查詢。
       3. 為了取得一特定的數(shù)據(jù)集執(zhí)行多次查詢操作。這通常是因?yàn)闆](méi)有充分利用復(fù)雜 sql語(yǔ)句的優(yōu)點(diǎn)或存儲(chǔ)過(guò)程導(dǎo)致的。

    想了解更多,請(qǐng)查看: Blog on Linq2Sql Performance Issues on Database ,  Video on Performance Anti-Patterns


        #2 同步死鎖

        毫無(wú)疑問(wèn),同步在應(yīng)用中保護(hù)共享數(shù)據(jù)是十分必要的。但有很多開(kāi)發(fā)者犯了過(guò)度使用同步的錯(cuò)誤。例如:大量的代碼序列被同步。低負(fù)載(開(kāi)發(fā)者本地的機(jī)器上)時(shí)性能不會(huì)出現(xiàn)問(wèn)題。在高負(fù)載或生產(chǎn)環(huán)境中,同步過(guò)度使用會(huì)導(dǎo)致服務(wù)器性能和擴(kuò)展性問(wèn)題。

    想了解更多哦,請(qǐng)查看:How to identify synchronization problems under load


          #3 與遠(yuǎn)程通道對(duì)話過(guò)多

        很多類庫(kù)出現(xiàn)使得遠(yuǎn)程通信看起來(lái)小菜一碟。開(kāi)發(fā)者調(diào)用本地和遠(yuǎn)程方法幾乎沒(méi)有什么不同。對(duì)遠(yuǎn)程調(diào)用的缺乏了解,使得大家 忘了 隨著每次遠(yuǎn)程調(diào)用產(chǎn)生的諸如延遲、序列化、網(wǎng)絡(luò)傳輸和內(nèi)存消耗等問(wèn)題。簡(jiǎn)單的使用這些技術(shù)導(dǎo)致這些遠(yuǎn)程邊界穿插太多的調(diào)用,最終導(dǎo)致性能和擴(kuò)展性問(wèn)題。

    想了解更多,請(qǐng)查看: Performance Considerations in Distributed Applications


         #4 錯(cuò)誤的使用O/R-Mappers

          對(duì)象關(guān)系映射卸下了開(kāi)發(fā)者肩膀上的重?fù)?dān)-- 加載和在數(shù)據(jù)庫(kù)中持久化對(duì)象。任何一種框架通常有很多配置選項(xiàng)來(lái)優(yōu)化應(yīng)用用例的對(duì)象關(guān)系映射的使用。錯(cuò)誤的配置和不正確的使用框架本身過(guò)多,導(dǎo)致使用這些框架的不可預(yù)料的性能和擴(kuò)展性問(wèn)題。確保你自己熟悉所有的配置項(xiàng)并且了解你所依靠的類庫(kù)的內(nèi)部。

    想了解更多,請(qǐng)查看: Understanding Hibernate Session Cache , Understanding the Query Cache , Understanding the Second Level Cache


         #5 內(nèi)存泄漏

          運(yùn)行時(shí)環(huán)境的管理,像Java和.NET都有垃圾回收器幫助進(jìn)行內(nèi)存管理。但是,垃圾回收器卻不能阻止內(nèi)存泄漏。被遺忘的對(duì)象會(huì)駐留在內(nèi)存中,最終導(dǎo)致內(nèi)存泄漏出現(xiàn)OutOfMemoryException。及時(shí)的釋放掉對(duì)不再需要的對(duì)象的引用很重要。

    想了解更多,請(qǐng)查看: Understanding and finding Memory Leaks


        #6 第三方代碼或組件的問(wèn)題

         沒(méi)有人靠自己寫(xiě)一個(gè)新應(yīng)用的所有功能。我們使用第三方的類庫(kù)來(lái)加快我們的開(kāi)發(fā)進(jìn)度。我們?cè)诩涌煳覀冚敵龅耐瑫r(shí),也增加了由這些組件帶來(lái)的性能風(fēng)險(xiǎn)。盡管多數(shù)的框架有很好的文檔且經(jīng)過(guò)十分徹底的測(cè)試,但不能保證這些框架適用于所有情況。他們經(jīng)常被不正確的使用,或不經(jīng)過(guò)測(cè)試就使用。所有,在引入你的代碼之前,要對(duì)所有這些框架進(jìn)行深入的檢查。

    想了解更多,請(qǐng)查看: Top SharePoint Performance Mistakes


        #7 稀少資源的浪費(fèi)使用

         像內(nèi)存、CPU、I/O或數(shù)據(jù)庫(kù)這類資源都是稀少的。對(duì)這些資源的浪費(fèi)使用導(dǎo)致其他人不能調(diào)用這些資源,最終導(dǎo)致性能和擴(kuò)張性問(wèn)題。舉個(gè)例子:數(shù)據(jù)庫(kù)連接時(shí)間太長(zhǎng)。連接應(yīng)該只有在真正需要的期間段使用。例如,查詢時(shí)連接,然后把連接歸還給連接池。我們經(jīng)常看到在處理請(qǐng)求很早之前就請(qǐng)求連接,并且直到最后也沒(méi)有釋放連接,這就導(dǎo)致瓶頸現(xiàn)象的出現(xiàn)。

    想了解更多,請(qǐng)查看: Resource Leak detection in .NET Applications


        #8 臃腫的WEB前端

         由于網(wǎng)絡(luò)的高速接入,用戶有了更好的用戶體驗(yàn)。不好的趨勢(shì)是很多應(yīng)用打包的東西太多,他們變得臃腫,最終導(dǎo)致瀏覽器出現(xiàn)錯(cuò)誤。那些還沒(méi)有高速網(wǎng)絡(luò)接入的用戶會(huì)遇到這樣的問(wèn)題會(huì)最多。圖片過(guò)大過(guò)多,錯(cuò)誤的使用瀏覽器的緩存,過(guò)度的使用JavaScript或Ajax,所有這些都會(huì)導(dǎo)致瀏覽器的性能問(wèn)題。按照已有網(wǎng)站的成功案例來(lái)優(yōu)化能解決這些問(wèn)題。

    想了解更多,請(qǐng)查看: How Better Caching would help speed up Frankfurt Airport Web Site


       #9 錯(cuò)誤的緩存策略導(dǎo)致垃圾回收過(guò)度

        把對(duì)象在內(nèi)存中緩存,來(lái)避免持續(xù)的對(duì)數(shù)據(jù)庫(kù)的反復(fù)調(diào)用是提升性能的一種方法。緩存太多的對(duì)象,或者緩存的對(duì)象不是經(jīng)常使用,會(huì)把緩存的優(yōu)點(diǎn)變成缺點(diǎn),因?yàn)橄牡膬?nèi)存過(guò)多并且增加了GC的活動(dòng)。在實(shí)現(xiàn)一個(gè)緩存策略之前,有應(yīng)該知道那些對(duì)象應(yīng)該緩存,哪些對(duì)象不應(yīng)該緩存來(lái)避免這些性能和擴(kuò)展性問(wèn)題。

    想了解更多,請(qǐng)查看:Java Memory Problems , Identify GC Bottlenecks in Distributed Applications


        #10 間歇性問(wèn)題

        間歇性問(wèn)題很難被發(fā)現(xiàn)。這些問(wèn)題在輸入特殊參數(shù)或一定負(fù)載時(shí)才會(huì)經(jīng)常出現(xiàn)。測(cè)試覆蓋要全面,功能測(cè)試、負(fù)載測(cè)試和性能測(cè)試都要覆蓋到。這樣才能在成為最用用戶遇到的問(wèn)題之前發(fā)現(xiàn)這些問(wèn)題。

    想了解更多,請(qǐng)查看: Tracing Intermittent Errors by Lucy Monahan from Novell , How to find invisible performance problems


       (附加問(wèn)題)#11 昂貴的序列化

        使用遠(yuǎn)程通信,像Web Service,RMI 或 WCF。對(duì)象需要被調(diào)用者序列化來(lái)在網(wǎng)絡(luò)中傳輸。網(wǎng)絡(luò)另一端的被調(diào)用者需要在使用這個(gè)對(duì)象前反序列化。傳輸時(shí)兩端都這樣做的話會(huì)導(dǎo)致一些資源消耗。知道兩端需要什么類型的序列化,哪種序列化和傳輸類型是最優(yōu)的很重要。不同類型的序列化對(duì)性能、擴(kuò)展性、內(nèi)存使用和網(wǎng)絡(luò)傳輸會(huì)產(chǎn)生不同的影響。

    想了解更多,請(qǐng)查看:Performance Considerations in Distributed Applications


        本文摘自:http://blog.dynatrace.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/

     

        翻譯的不好,見(jiàn)諒。

    posted on 2010-07-14 19:14 星期五 閱讀(195) 評(píng)論(0)  編輯  收藏 所屬分類: 天圓地方

    主站蜘蛛池模板: 女人18毛片水真多免费看| 午夜一级免费视频| 亚洲国产美女在线观看| 成人黄页网站免费观看大全| 又粗又长又爽又长黄免费视频| 国产亚洲人成在线影院| 免费中文字幕在线观看| 久久久精品免费视频| 亚洲精品中文字幕| 亚洲第一区香蕉_国产a| 国产乱人免费视频| 亚洲免费中文字幕| 一级**爱片免费视频| 亚洲一区无码中文字幕乱码| 免费福利在线观看| 亚洲精品视频在线观看视频| 久久精品免费电影| 国产午夜亚洲精品不卡| 亚洲欧洲久久精品| 久久久久久亚洲精品不卡| 日本在线免费播放| 亚洲成a人片在线不卡一二三区 | 日本在线看片免费人成视频1000| 亚洲国产成人久久综合区| 99re6在线视频精品免费下载| 亚洲熟妇av一区| 亚洲人成网亚洲欧洲无码久久| 亚洲熟妇av午夜无码不卡| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久国产精品亚洲一区二区| 日本高清免费网站| 国产免费播放一区二区| 亚洲处破女AV日韩精品| 四虎国产精品免费久久影院| 日韩在线免费视频| 免费无码午夜福利片| 亚洲日韩国产欧美一区二区三区 | 亚洲成A人片在线观看中文| 97性无码区免费| 国产激情免费视频在线观看| 一级毛片视频免费|