Web项目性能优化之减少HTTP请求次数优化
作為項目經理的我,在近兩個月內,時常被客戶抱怨,我們的Web程序性能太差,經常宕機,即使服務器的配置再好,在業務請求量大的情況下也比較容易出現系統繁忙,線程堵塞,最后Web容器的HTTP線程池被慢慢耗盡而出現宕機問題,無法對外提供服務。
???????? 于是在多方壓力下,與同事連續苦戰,頂著壓力,發現一些嚴重影響Web系統性能的問題:前臺頻繁與后臺交互數據,且交互的數據約為500KB的數據,客戶端與服務端來回傳輸的數據接近1M。
???????? 頻繁的請求服務器,會造成頁面響應緩慢,數據加載緩慢的問題,若果并發量大的時候,很容易造成系統癱瘓。
???????? 對于SSH項目而言,在很多情況下,大多數的服務都是提供查詢數據信息服務和信息展現服務,涉及的數據修改服務則會相對少很多。而對于查詢服務而言,若能減少前臺客戶端和后端服務器數據交互的次數,則對整個Web系統是很大的性能提升。
1、從網絡方面而言,減少數據的交互就意味著減少了網絡帶寬的壓力,能夠提供更大并發量的服務,減少網絡傳輸的時間。
2、由于減少了請求次數,服務器的資源開銷得到有效減少,后臺服務器不用頻繁的創建線程來處理外部的請求,由于操作系統創建和銷毀線程的操作是非常消耗系統CPU等資源,因此減少請求次數也就大大減少了系統開銷。
?
解決優化辦法:
在一次查詢中,首次請求后臺時,后臺一次性將所需要的信息全部返回,前臺進行緩存,后續所有的操作均解析前臺緩存數據,從中取出頁面操作所需要的信息然后再進行展現,有效減少請求后臺服務器的次數。相對于程序和網絡延遲來說,網絡傳輸所耗費的時間,要比解析數據要慢的多,即使返回的數據量大,也不會比網絡延遲的影響更大。
具體緩存的策略,可以是一個數組對象,一個列表對象,或一個HashMap對象等,也可以是JSON數據,或XML內容。總之,只要有利于緩存的數據結構,都可以用于數據的緩存。
此種方法,對比較大的數據來說,非常有效,能有效緩解服務器的壓力和網絡壓力,提高系統的整體性能。
來源:http://blog.csdn.net/yangkang029/article/details/50186257
總結
以上是生活随笔為你收集整理的Web项目性能优化之减少HTTP请求次数优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请写一段 PHP 代码 ,确保多个进程同
- 下一篇: Web性能优化与Http2