博主最近剛好碰到客戶的網站(zhàn)首頁打開(kāi)慢,2s左右,這裏的速度值得(de)是,F12打開(kāi)開(kāi)發者工具選擇Network查看對應的域名加載速度,如下圖Waiting花(huā)了1.95s,正常頁面這塊速度一般是1s內(nèi),現在的速度肯定是不及格的,那(nà)麽有(yǒu)沒辦法優化下呢,下面一起來(lái)研究下。
首先說明(míng)這裏講的網頁速度是排除掉靜态資源加載的,這裏的速度是用戶訪問域名然後程序響應回來(lái)所花(huā)的時(shí)間(jiān),主要影(yǐng)響因素有(yǒu)以下幾點:
1、服務器(qì)配置
配置高(gāo)的服務器(qì)響應速度差别還(hái)是很(hěn)明(míng)顯的,但(dàn)是一般情況下咱們的數(shù)據量不是超大(dà),例如幾萬,那(nà)麽區(qū)别不明(míng)顯。
2、CMS程序
這個(gè)可(kě)能是影(yǐng)響這個(gè)速度最明(míng)顯的地方,pbootcms目前發現的是如果數(shù)據量大(dà)、內(nèi)容自定義字段過多(duō)、頁面中判斷層級大(dà)于2級等都容易造成網頁響應速度下降明(míng)顯。
3、數(shù)據庫影(yǐng)響
pbootcms默認使用的是sqlite,如果數(shù)據超過1w建議換成mysql。如果說一開(kāi)始确定好了采集方向,那(nà)提前使用mysql會(huì)節省很(hěn)多(duō)頭發。
1、減少(shǎo)if層級,控制(zhì)在2層
2、數(shù)據量和(hé)字段數(shù)一般沒法控制(zhì),看具體(tǐ)項目,所以得(de)考慮前台調用代碼去優化
3、頁面純靜态化,目前還(hái)沒有(yǒu)此功能暫不考慮
下面針對前台調用代碼進行(xíng)分析下:
通(tōng)過查找手冊公共标簽-其他格式化标簽發現有(yǒu)個(gè)lfield參數(shù),經過測試确實效果明(míng)顯!
使用案例,這些(xiē)因為(wèi)隻需要調用title和(hé)date所以做(zuò)了限制(zhì)查詢這兩個(gè)字段即可(kě)。
博主剛提到的那(nà)個(gè)站(zhàn)通(tōng)過此方式首頁響應速度從2s左右控制(zhì)到了1s以內(nèi),基本解決了問題。
性能優化原理(lǐ)解析:
通(tōng)過查看數(shù)據庫查詢語句發現pbootcms對于列表數(shù)據默認是查詢內(nèi)容主表ay_content和(hé)附表ay_content_ext的全部字段,這就導緻了數(shù)據多(duō)的時(shí)候性能明(míng)顯下降,特别注意的是附表是內(nèi)容新增字段存放位置,這裏就解釋了為(wèi)什麽字段新增過多(duō)導緻卡的原因了。
因此核心就是在于默認得(de)限制(zhì)字段調用,所以博主建議列表內(nèi)容調用的時(shí)候養成默認增加lfield屬性限制(zhì)字段使用,同時(shí)也建議避免content在列表內(nèi)容中調用,因為(wèi)content字段數(shù)據一般都比較多(duō),可(kě)以使用description字段替代。
這裏提供個(gè)列表內(nèi)容調用模闆:
以上(shàng)就是關于pbootcms性能優化研究介紹,如果你(nǐ)有(yǒu)相關的建議可(kě)以評論或者加群交流。
*請(qǐng)認真填寫需求信息,我們會(huì)在24小(xiǎo)時(shí)內(nèi)與您取得(de)聯系。