成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

服務器端編程的十大性能問題

開發
文章作者Andreas Grabner根據自己的工作經驗,列舉了過去他曾遇到過的服務器端編程的十大性能問題,希望這些問題能給廣大讀者帶來一定的啟示。

51CTO之前曾報道過《“殺死”你的服務器的6種方法》,分析了在網站后臺重構過程中容易讓服務器宕機的六種情況,本文作者則列舉了其在過去幾年工作中所遇到的服務器端編程的十大性能問題。

問題一:過多的數據庫調用

我們發現經常出現的一個問題就是在每次請求/事務中存在過多的數據庫查詢。有如下三個場景作為佐證:

◆在一次事務上下文中所請求的數據比實際需要的數據多出很多。比如說:請求所有的賬戶信息而不是僅僅查詢出當前需要顯示的信息。

◆多次請求同樣的數據。這種情況通常發生在相同事務中的不同組件之間是彼此獨立的,而每個組件都會請求同樣的數據。我們并不清楚當前上下文中已經加載了哪些數據,最后只得多次發出同樣的查詢。

◆發出多個查詢語句以獲得某一數據集。通常這是由于沒有充分利用到復雜的SQL語句、存儲過程等在一次批處理中獲取需要的數據所導致的。

問題二:過多地使用同步

毫無疑問,同步對于應用中共享數據的保護來說是至關重要的舉措。但有很多開發者卻過度使用同步,比如在超大段的代碼中使用同步。在低負載的情況下,這么做倒沒什么問題;但在高負載或是產品環境下,過度的同步會導致嚴重的性能與可伸縮性問題。

問題三:過度使用遠程調用

很多庫都使用了遠程通信。對于開發者來說,遠程調用與本地調用似乎沒什么區別,但如果不清楚遠程調用的本質就會鑄成大錯,因為每一次遠程調用都會涉及到延遲、序列化、網絡堵塞以及內存使用等問題。如果沒有經過深思熟慮而盲目使用這些遠程技術就會導致嚴重的性能與可伸縮性問題。

問題四:錯誤地使用對象關系映射

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

問題五:內存泄漏

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

問題六:使用有問題的第三方代碼/組件

沒有人會從頭編寫應用的全部功能。我們都會使用第三方程序庫來加快開發進程。這么做不僅會加速產出,也增加了性能上的風險。雖然大多數框架都具有良好的文檔并且經過了充分的測試,但沒人能夠保證這些框架在任何時候都會像預期的那樣好。因此,在使用這些第三方框架時,事先一定要做好充分的調研。

問題七:對稀缺資源的使用存在浪費的情況

內存、CPU、I/O以及數據庫等資源屬于稀缺資源。在使用這些資源時如果存在浪費的情況就會造成嚴重的性能與可伸縮性問題。比如說,有人會長時間打開數據庫連接而不關閉。連接應該只在需要的時候才使用,使用完畢后就應該放回到連接池中。我們經常看到有人在請求一開始就去獲取連接,直到最后才釋放,這么做會導致性能瓶頸。

問題八:膨脹的Web前端

由于現在的Web速度越來越快,用戶的網絡體驗也越來越好。在這個趨勢下,很多應用的前端都提供了太多的內容,但這么做會導致差勁的瀏覽體驗。很多圖片都太大了,沒有利用好或是錯誤地使用了瀏覽器緩存、過度地使用JavaScript/AJAX等,所有這一切都會導致瀏覽器的性能問題。

問題九:錯誤的緩存策略導致過度的垃圾收集

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

問題十:間歇性問題

間歇性問題很難發現。通常這類問題與特定的輸入參數有關,或是發生在某個負載條件下。完全的測試覆蓋率及負載與性能測試能在這些問題產生前就發現他們。

原文作者:Andreas Grabner

原文鏈接:http://blog.dynatrace.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/

作者介紹

Andreas Grabner,是一名具有10年以上編程經驗的Java/.Net開發工程師,他目前是職位是dynaTrace軟件公司技術團隊的負責人。

【編輯推薦】 

  1. “殺死”你的服務器的6種方法
  2. 大型B2C網站高性能可伸縮架構技術探秘
  3. 世界最大的PHP站點 Facebook后臺技術探秘
  4. 更好的選擇 細數Apache服務器的四個替代者

 

責任編輯:王曉東 來源: InfoQ
相關推薦

2010-11-18 16:23:33

2009-08-26 09:09:46

服務器維護錯誤

2009-07-29 15:48:45

2020-06-02 14:57:06

Linux服務器架構

2021-09-09 10:40:12

服務器虛擬化數據中心

2016-01-05 16:29:23

服務器虛擬化

2010-10-15 08:57:15

PHP多進程

2021-07-27 06:14:32

服務器端移動端性能測試

2013-08-01 10:07:37

服務器虛擬化虛擬化

2010-02-22 10:35:05

服務器虛擬化

2010-01-08 13:54:17

JSON 性能

2010-07-27 09:16:49

2010-11-11 09:51:38

服務器虛擬化

2015-10-27 09:40:31

TCPIP網絡協議

2013-12-25 11:01:16

JavaScript

2009-08-26 09:44:18

2013-06-21 14:36:02

JavaEEx性能

2013-01-10 10:07:54

2010-12-21 12:08:08

服務器處理器CPU

2014-01-15 10:06:30

vFlash
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女一区二区在线观看 | 亚洲成人精品一区 | 精品96久久久久久中文字幕无 | 看av在线| 极品一区| 91综合网| 国产精品视频久久久 | 国产精品av久久久久久毛片 | 久久久精品一区 | 欧美激情视频一区二区三区在线播放 | 国产精品观看 | 亚洲精品久久久久久一区二区 | 337p日本欧洲亚洲大胆精蜜臀 | 日韩午夜一区二区三区 | 精品一区在线免费观看 | 国产视频中文字幕 | 久久精品国产久精国产 | 国产亚洲一区二区三区在线 | 日韩久久精品电影 | 91xx在线观看 | 久久综合888 | 亚洲精品视频一区二区三区 | 欧州一区二区三区 | 中文字幕在线一区二区三区 | 欧美精品tv | 日韩av第一页 | 91免费看片 | 日日操夜夜摸 | 亚洲精品中文在线 | 久久久天堂 | 午夜视频免费 | 国产精品九九 | a级黄色片在线观看 | 色网站在线 | 激情五月婷婷综合 | 日韩av第一页 | 日韩中文字幕视频在线 | 伊人网伊人 | 久久夜视频| 日韩欧美国产精品一区 | 999久久久免费精品国产 |