欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
服務(wù)器端編程的十大性能問(wèn)題

今年5月底,瑞士計算機世界雜志刊登了Web性能診斷專(zhuān)家Bernd Greifeneder的一篇文章,文章列舉了其在過(guò)去幾年工作中所遇到的服務(wù)器端編程的十大性能問(wèn)題。Andreas Grabner則在自己的博客上對這些性能問(wèn)題給出了進(jìn)一步閱讀的鏈接。希望這些問(wèn)題與相關(guān)的延伸閱讀能為廣大的InfoQ讀者帶來(lái)一定的啟示。

問(wèn)題一:過(guò)多的數據庫調用

我們發(fā)現經(jīng)常出現的一個(gè)問(wèn)題就是在每次請求/事務(wù)中存在過(guò)多的數據庫查詢(xún)。有如下三個(gè)場(chǎng)景作為佐證:

  • 在一次事務(wù)上下文中所請求的數據比實(shí)際需要的數據多出很多。比如說(shuō):請求所有的賬戶(hù)信息而不是僅僅查詢(xún)出當前需要顯示的信息。
  • 多次請求同樣的數據。這種情況通常發(fā)生在相同事務(wù)中的不同組件之間是彼此獨立的,而每個(gè)組件都會(huì )請求同樣的數據。我們并不清楚當前上下文中已經(jīng)加載了哪些數據,最后只得多次發(fā)出同樣的查詢(xún)。
  • 發(fā)出多個(gè)查詢(xún)語(yǔ)句以獲得某一數據集。通常這是由于沒(méi)有充分利用到復雜的SQL語(yǔ)句、存儲過(guò)程等在一次批處理中獲取需要的數據所導致的。

延伸閱讀:Blog on Linq2Sql Performance Issues on Database、Video on Performance Anti-Patterns

問(wèn)題二:過(guò)多地使用同步

毫無(wú)疑問(wèn),同步對于應用中共享數據的保護來(lái)說(shuō)是至關(guān)重要的舉措。但有很多開(kāi)發(fā)者卻過(guò)度使用同步,比如在超大段的代碼中使用同步。在低負載的情況下,這么做倒沒(méi)什么問(wèn)題;但在高負載或是產(chǎn)品環(huán)境下,過(guò)度的同步會(huì )導致嚴重的性能與可伸縮性問(wèn)題。

延伸閱讀: How to identify synchronization problems under load

問(wèn)題三:過(guò)度使用遠程調用

很多庫都使用了遠程通信。對于開(kāi)發(fā)者來(lái)說(shuō),遠程調用與本地調用似乎沒(méi)什么區別,但如果不清楚遠程調用的本質(zhì)就會(huì )鑄成大錯,因為每一次遠程調用都會(huì )涉及到延遲、序列化、網(wǎng)絡(luò )堵塞以及內存使用等問(wèn)題。如果沒(méi)有經(jīng)過(guò)深思熟慮而盲目使用這些遠程技術(shù)就會(huì )導致嚴重的性能與可伸縮性問(wèn)題。

延伸閱讀: Performance Considerations in Distributed Applications

問(wèn)題四:錯誤地使用對象關(guān)系映射

對象關(guān)系映射為開(kāi)發(fā)者解決了很多負擔,比如從數據庫中加載對象以及將對象持久化到數據庫中。但與其他任何框架一樣,對象關(guān)系映射也有很多配置選項需要優(yōu)化,只有這樣才能適應于當前應用的需要。錯誤的配置與不正確的使用都會(huì )導致始料不及的性能問(wèn)題。在使用對象關(guān)系映射框架前,請務(wù)必保證熟悉所有的配置,如果有機會(huì ),請深入到所用框架的內核,這樣使用起來(lái)才有保障。

延伸閱讀:Understanding Hibernate Session Cache、Understanding the Query Cache、Understanding the Second Level Cache

問(wèn)題五:內存泄漏

托管的運行時(shí)環(huán)境(如Java和.NET)可以通過(guò)垃圾收集器進(jìn)行內存管理。但垃圾收集器無(wú)法避免內存泄漏問(wèn)題。“被遺忘”的對象依舊會(huì )占據著(zhù)內存,最終將會(huì )導致內存泄漏問(wèn)題。當對象不再需要時(shí),請盡快釋放掉對象引用。

延伸閱讀:Understanding and finding Memory Leaks

問(wèn)題六:使用有問(wèn)題的第三方代碼/組件

沒(méi)有人會(huì )從頭編寫(xiě)應用的全部功能。我們都會(huì )使用第三方程序庫來(lái)加快開(kāi)發(fā)進(jìn)程。這么做不僅會(huì )加速產(chǎn)出,也增加了性能上的風(fēng)險。雖然大多數框架都具有良好的文檔并且經(jīng)過(guò)了充分的測試,但沒(méi)人能夠保證這些框架在任何時(shí)候都會(huì )像預期的那樣好。因此,在使用這些第三方框架時(shí),事先一定要做好充分的調研。

延伸閱讀: Top SharePoint Performance Mistakes

問(wèn)題七:對稀缺資源的使用存在浪費的情況

內存、CPU、I/O以及數據庫等資源屬于稀缺資源。在使用這些資源時(shí)如果存在浪費的情況就會(huì )造成嚴重的性能與可伸縮性問(wèn)題。比如說(shuō),有人會(huì )長(cháng)時(shí)間打開(kāi)數據庫連接而不關(guān)閉。連接應該只在需要的時(shí)候才使用,使用完畢后就應該放回到連接池中。我們經(jīng)??吹接腥嗽谡埱笠婚_(kāi)始就去獲取連接,直到最后才釋放,這么做會(huì )導致性能瓶頸。

延伸閱讀: Resource Leak detection in .NET Applications

問(wèn)題八:膨脹的Web前端

由于現在的Web速度越來(lái)越快,用戶(hù)的網(wǎng)絡(luò )體驗也越來(lái)越好。在這個(gè)趨勢下,很多應用的前端都提供了太多的內容,但這么做會(huì )導致差勁的瀏覽體驗。很多圖片都太大了,沒(méi)有利用好或是錯誤地使用了瀏覽器緩存、過(guò)度地使用JavaScript/AJAX等,所有這一切都會(huì )導致瀏覽器的性能問(wèn)題。

延伸閱讀: How Better Caching would help speed up Frankfurt Airport Web Site、Best Practices on Web Performance Optimization

問(wèn)題九:錯誤的緩存策略導致過(guò)度的垃圾收集

將對象緩存在內存中可以避免每次都向數據庫發(fā)出請求,這么做可以提升性能。但如果緩存了太多的對象,或是緩存了很多不常使用的對象則會(huì )將緩存的這種優(yōu)勢變成劣勢,因為這會(huì )導致過(guò)高的內存使用率及過(guò)多的垃圾收集活動(dòng)。在實(shí)現緩存策略前,請想好哪些對象需要緩存,哪些對象不需要緩存,進(jìn)而避免這類(lèi)性能與可伸縮性問(wèn)題。

延伸閱讀:Java Memory Problems、Identify GC Bottlenecks in Distributed Applications

問(wèn)題十:間歇性問(wèn)題

間歇性問(wèn)題很難發(fā)現。通常這類(lèi)問(wèn)題與特定的輸入參數有關(guān),或是發(fā)生在某個(gè)負載條件下。完全的測試覆蓋率及負載與性能測試能在這些問(wèn)題產(chǎn)生前就發(fā)現他們。

延伸閱讀:Tracing Intermittent Errors by Lucy Monahan from Novell、How to find invisible performance problems

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
為什么要使用EJB?
Asp.net程序性能優(yōu)化的七個(gè)方面
性能測試如何起步
一文了解緩存組件
數據庫內置行級緩存 vs Memcached
MyBatis是什么?它和hibernate的區別有哪些?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久