Այս հոդվածի նպատակն է ցույց տալ վորդպրեսով աշխատող կայքի օպտիմալացման մի օրինակ:
Ուրեմն այսպես, ելակետերն են.
- Կայքը աշխատում է վորդպրեսի վրա
- Կայքը մի քանի լեզուներով աշխատեցնելու նպատակով տեղադրված է WPML(WordPress MultiLingual) փլագինը
- Տեղադրված են նաև մի քանի այլ փլագիններ
Գոյություն ունի մի օգտակար փլագին, որը հնարավորություն է ընձեռնում էջերի բեռնման ընթացքում փլագինների ազդեցության վերլուծություն կատարել, թե էջերի բեռնման ժամանակ, որ փլագինը որքան ժամանակ է ավելացնում էջի բեռնման ընդհանուր ժամանակին, ինչպես նաև ցույց է տալիս յուրաքանչյուր փլագինի կողմից տվյալների բազային կատարած հարցումների քանակը: Այլ բառերով ասած, որքան է յուրաքանչյուր փլագինը ծանրաբեռնում տվյալների բազան և վերջին հաշվով նաև ամբողջ կայքը: Փլագինը կոչվում է P3 Plugin Profiler:
Իմ դեպքում փլագինը սկզբում ցույց էր տալիս հետևյալ պատկերը, սա օգտագործվող փլագինների աշխատանքի ժամանակային գրաֆիկն է:
Ինչպես տեսնում էք կայքը ամենաշատ ծանրաբեռնող փլագինը հենց մեր բազմալեզու փլագինն է, որի մասին սկզբում ասում էի: Հետո նայում եմ տվյալների բազային կատարված հարցումների քանակին:
Ու երևում է մի ահավոր պատկեր, մի էջ ստեղծելու համար համակարգը 500-ից ավել հարցում է անում տվյալների բազային: Սա ոչ թե շատ է, այլ անթույլատրելի ճոխություն է, չափազանց մեծ ճոխություն … Երկու գրաֆիկները համադրելով ենթադրում եմ, որ ամենաշատ հարցումները հենց WPML-ն է անում:
Մի փոքր մտածելուց հետո հասկացա ինչից է դա: Այսպես , ամեն մի էջ սարքելիս համակարգը հարցնում է ՏԲ*-ին կայքի բոլոր էլեմենտների թարգմանությունները, բացի դրանից, պիտի գտնի ակտիվ լեզվով առկա կատեգորիաները, բաժինները, նշագրերը, նաև հիմնական մենյուի մեջ գտնվող հղումները, բացի դրանից բոլոր օգտագործված վիջեթների մեջ գտնվող ակտիվ լեզվով առկա հղումները ու հղումների վերնագրերը/խարիսխները(anchor) և այլն: Ու երիևի թե հնարավոր չեր ավելի օպտիմալ գրել WPML փլագինը, որովհետև իրականում նախօրոք պարզ չի, թե որ վիջեթներն են օգտագործվելու կոնկրետ կայքում:
Ես ինձ բավարարող խնդրի լուծումը գտել եմ: Հիմնական մենյուի և բաժինների վիջեթը դարձրել եմ ստատիկ HTML, մտածելով որ դրանք հաճախակի չէն փոփոխվում, ամեն օր չի որ նոր բաժին է հայտնվում կայքում, ու իմաստ չունի, որ դրանք ստեղծելու համար համակարգը դիմի ՏԲ-ին: Ակտիվ լեզվի որոշման համար էլ WPML-ն տալիս է այս «գլոբալ» փոփոխականը
ICL_LANGUAGE_CODE
հասարակ if լեզվական կառուցվածքուվ կարելի է ասել, որ եթե ակտիվ լեզուն հայերեն է , ապա տպիր այսինչ HTML-ը, եթե անգլերեն ՝ ապա այնինչ HTML-ը …
Ու տեսեք արդյունքը, WPML-ն իհարկե բոլոր մնացած փլագինների հետ համեմատած ամենաորկրամոլ փլագինն է մնում, սակայն ընդհանուր ծանրաբեռնվածությունը անհամեմատ նվազել է:
Տվյալների բազային արված հարցումների քանակի մասին էլ չէմ խոսում: Նվազել է 4-ից ավել անգամ:
Եզրակացություն: Կայքի արագագործության համար անհրաժեշտ է բոլոր հնարավոր դեպքերում , դինամիկ ստեղծվող(ՏԲ-ից կարդացվող) էլեմենտները փոխարինել ստատիկ HTML-ներով: Ու սա չի վերաբերվում միայն WPML փլագինին: Սա ավելի ընդհանուր կանոն է:
ՀԳ: Իհարկե հարյուրին մոտ հարցումները նույնպես չափազանց շատ են, բայց այս մինիմալ փոփոխությունները** արդեն բերել են մեծ արդյունքի: Հարցումները ավելի քչացնելու անհրաժեշտություն դեռ չէմ տեսնում: Եթե որոշեմ, որ պետք է ավելի խորը քչփորել, ու հետաքրքիր բան լինի անպայման կգրեմ:
ՀԳ:2 Հայկական ցանցում mysql+վորդպրեսս օպտիմալացման մասին միայն մի հոդված(տեանյութ) գիտեմ, բավականին հետաքրքիր է, ահա հղումը
http://www.e-armenians.com/videotips/wp-db-optimization/
*ՏԲ-տվյալների բազա, տվյալների հենք
**սրանք միայն թեմայի ֆայլերի փոփոխություններ են, բուն WPML փլագինի ֆայլերին ձեռք չէմ տվել:
Ես որ WEB-ից էդքան հեռու եմ, իմ համար շաաաաաատ, շաաաատ հասկանալի լեզվով էր գրած ու մի շնչով կարդացվեց: Շնորհակալություն :ՃՃՃ
Խնդրեմ Վարդգես ջան, նորից համեցեք 🙂