RuhaniSoftSULUHISHO ZA PROGRAMU
SW

:mwezi :siku, :mwaka · :hesabu dakika za kusoma

Utendaji wa Laravel: Njia 14 za Kufanya Maombi Yako Kuwa Haraka

Programu ya polepole hugharimu pesa kwa njia ambazo ni rahisi kuzikosa. Wageni huacha kurasa zinazochukua muda mrefu kupakia, wafanyakazi hupoteza uvumilivu na dashibodi zinazochelewa, injini za utafutaji hupendelea tovuti na seva za haraka zinazofanya kazi kwa bidii kuliko inavyopaswa kuongeza bili za upangishaji. Laravel ni mfumo wenye uwezo na unaweza kuendesha programu za haraka sana, lakini haifanyi kila programu iwe haraka kiotomatiki. Kasi hutokana na maamuzi mazuri, na makosa machache ya kawaida husababisha kupungua kwa kasi kwa programu.

Mwongozo huu unapitia njia kumi na nne za vitendo za kuboresha utendaji wa Laravel, kwa mpangilio ambao kwa kawaida hulipa: pima kwanza, rekebisha hifadhidata, kisha ongeza uhifadhi wa data na usindikaji wa mandharinyuma, kisha rekebisha mfumo na miundombinu. Imeandikwa kwa ajili ya watengenezaji na watu wanaoisimamia, kwa hivyo kila sehemu inaelezea kwa nini kitu ni muhimu na cha kufanya. Ikiwa huna uhakika kama programu yako ina matatizo makubwa zaidi, makala yetu kuhusu signs your Laravel application inahitaji ukaguzi wa kiufundi ni rafiki mzuri, na ukurasa wetu wa Laravel development unaelezea jinsi tunavyoshughulikia aina hii ya kazi.

Hatua ya sifuri: pima kabla ya kubadilisha chochote

Kosa la kawaida la utendaji ni kuboresha kitu kibaya. Kukisia hupoteza muda na huongeza ugumu. Kabla ya kubadilisha msimbo, tafuta mahali ambapo wakati unaenda.

1. Tafuta kurasa na maswali ya polepole

Zana muhimu ni pamoja na:

Anza na kurasa ambazo watumiaji hulalamika kuhusu, au zile zenye trafiki nyingi. Kumbuka muda wa majibu, idadi ya maswali na kumbukumbu iliyotumika. Hizo huwa msingi wako, ili uweze kujua kama mabadiliko yalisaidia.

Mara nyingi jibu ni la kushangaza. Ukurasa unaohisi polepole kwa sababu ya picha kubwa au JavaScript nzito hautasaidiwa na urekebishaji wa hifadhidata, na ukurasa wenye hoja mia moja hautasaidiwa na seva yenye kasi zaidi.

Hifadhidata: ambapo matatizo mengi yanaishi

Katika programu za kawaida za biashara, ucheleweshaji mwingi hutoka kwenye hifadhidata, na kwa kawaida hutoka kwenye mifumo michache.

2. Rekebisha tatizo la hoja ya N+1

Hili ndilo tatizo la kawaida la utendaji wa Laravel. Hutokea wakati msimbo unapopakia orodha ya rekodi na kisha kuendesha swali la ziada kwa kila moja ili kupata data inayohusiana. Kuonyesha oda 100 na wateja wao kunaweza kuwa hoja 101 kimya kimya.

Irekebishe kwa kupakia kwa hamu data inayohusiana mapema na na(), kwa hivyo Laravel huleta kila kitu katika hoja chache badala ya mamia. Unaweza pia kusanidi Laravel ili kutoa hitilafu wakati wa uundaji wakati wowote upakiaji wa uvivu unapotokea, ambao unapata tatizo kabla halijawafikia watumiaji.

3. Ongeza faharasa sahihi

Bila faharasa, hifadhidata husoma kila safu ili kupata ulichoomba. Kwenye jedwali dogo hili halionekani; kwenye jedwali kubwa ni polepole sana. Ongeza faharasa kwenye safu wima unazochuja, kupanga au kujiunga nazo mara kwa mara, kama vile funguo za kigeni, sehemu za hali na tarehe.

Tumia zana za uchambuzi wa hoja za hifadhidata, kwa mfano ELEZA, ili kuthibitisha hoja hutumia faharasa. Usiorodheshe kila kitu: kila faharasa hupunguza kasi huandika na hutumia hifadhi, kwa hivyo ziongeze pale zinapopatikana.

4. Chagua tu unachohitaji

Kupakia rekodi nzima na kila safu wima, ikiwa ni pamoja na sehemu kubwa za maandishi, wakati unahitaji jina na barua pepe pekee hupoteza kumbukumbu na wakati. Chagua safu wima maalum. Kwa seti kubwa za matokeo, changanua data vipande vipande au tumia mikusanyiko ya lazy ili programu isipakie mamia ya maelfu ya rekodi kwenye kumbukumbu mara moja.

5. Paji na uweke kikomo

Usipakie orodha isiyo na mipaka. Tumia paji kwa orodha zinazoonyeshwa kwa watumiaji, na mipaka kwa kila kitu kingine. Fikiria paji rahisi, ambayo huepuka hesabu ya jumla ya gharama kubwa, kwenye majedwali makubwa sana.

6. Sukuma kazi kwenye hifadhidata

Kupanga, kuchuja, kupanga na kujumlisha ni mambo ambayo hifadhidata hufanya vizuri sana. Kuzifanya katika PHP baada ya kupakia rekodi zote kwa kawaida ni polepole zaidi. Tumia hoja, mkusanyiko na, inapobidi, mionekano ya hifadhidata au jedwali za muhtasari kwa ripoti nzito.

Kuhifadhi: fanya kazi mara moja

7. Hifadhi matokeo ya gharama kubwa

Ikiwa swali au hesabu ni ghali na jibu lake halibadiliki kwa kila ombi, kama vile jumla ya dashibodi, orodha ya bidhaa au utafutaji wa usanidi, hifadhi matokeo kwenye kashe kwa muda mfupi badala ya kuikokotoa tena kila wakati.

8. Tumia hifadhi ya HTTP na ukurasa mahali panapofaa

Kurasa za umma ambazo hazibadiliki mara nyingi zinaweza kuwekwa kwenye kashe kwenye seva ya wavuti au mtandao wa uwasilishaji wa maudhui (CDN), kwa hivyo wageni wengi hawafikii PHP kabisa. Weka vichwa vya habari vya akiba sahihi kwa mali tuli ili vivinjari vitumie tena faili badala ya kuzipakua tena.

Usiwafanye watumiaji wasubiri

9. Sogeza kazi polepole kwenye foleni

Chochote kinachochukua zaidi ya muda na kisichohitaji kumalizika kabla ya mtumiaji kuona jibu ni la kazi ya usuli: kutuma barua pepe na arifa, kutoa PDF na ripoti, kuchakata picha na faili, kupiga simu huduma za watu wengine polepole na kusawazisha na mifumo mingine.

Mfumo wa foleni wa Laravel hufanya hili kuwa rahisi. Mtumiaji hupata jibu la haraka, na wafanyakazi hushughulikia kazi hiyo usuli kwa majaribio mengine ikiwa kitu kitashindwa. Tumia Redis au sehemu ya nyuma ya foleni inayoaminika, na ufuatilie foleni ili hitilafu zisipotee. Laravel Horizon inatoa dashibodi kwa foleni za Redis.

10. Panga kazi nzito nje ya kilele

Ripoti, usafi, uagizaji na usawazishaji zinaweza kuendeshwa wakati wa vipindi vya utulivu kupitia kipanga ratiba cha Laravel, badala ya kushindana na watumiaji wakati wa saa zenye shughuli nyingi.

Mfumo na seva

11. Tumia amri za uboreshaji zilizojengewa ndani za Laravel katika uzalishaji

Laravel inaweza kuhifadhi vitu kadhaa kwa hivyo haifanyi kazi nyingi kwa kila ombi.

Endesha hizi kama sehemu ya uwasilishaji wako, na Kumbuka kuzifuta au kuzijenga upya wakati usanidi unabadilika. Pia sakinisha vitegemezi vya uzalishaji kwa kutumia kipakiaji otomatiki kilichoboreshwa (composer install --optimize-autoloader --no-dev).

12. Rekebisha PHP na seva

Mipangilio ya msingi ya miundombinu hufanya tofauti kubwa.

13. Boresha sehemu ya mbele na mali

Kasi ya seva ni sehemu tu ya kile watumiaji wanahisi.

Kazi ya mbele mara nyingi ndiyo njia ya haraka zaidi ya kuboresha jinsi ukurasa unavyohisi haraka, na pia huathiri nafasi za utafutaji.

14. Weka utegemezi na msimbo ukiwa mwembamba

Jedwali la marejeleo la haraka

DaliliHuenda ikawa sababuJambo la kwanza kujaribu
Ukurasa hufanya mamia ya maswaliTatizo la N+1Upakiaji wa hamu na na()
Hoja moja inachukua sekundeKukosa faharasa au swali zitoELEZA, ongeza faharasa, andika upya hoja
Dashibodi ni polepoleMahesabu ya gharama kubwa yanayorudiwaMatokeo ya akiba au tumia majedwali ya muhtasari
Uwasilishaji wa fomu hutegemeaKazi polepole katika ombiHamisha hadi kazi iliyopangwa
Kila ombi ni polepole kidogoUshuru wa mfumoSanidi, elekeza na uangalie akiba, OPcache
Hitilafu za kumbukumbu kwenye orodha kubwaInapakia nyingi sana kwa wakati mmojaKukata, mikusanyiko ya uvivu, upangaji wa kurasa
Seva ya haraka, ukurasa wa polepoleSehemu nzito ya mbeleBandika picha, punguza hati, tumia CDN
Polepole chini ya ongezeko la trafikiWafanyakazi wachache sana, hakuna hifadhi ya dataKuhifadhi akiba, wafanyakazi zaidi, fikiria Octane

Makosa ya kawaida

  1. Kuboresha bila kupima. Unaweza kurekebisha kitu kibaya.
  2. Kuhifadhi kila kitu. Data iliyopitwa na wakati au isiyolingana husababisha hitilafu ambazo ni vigumu kufuatilia.
  3. Kuongeza faharasa bila kujua, kupunguza kasi ya kuandika bila kusaidia kusoma.
  4. Kupuuza tatizo la N+1 kwa sababu halionekani na data ndogo ya majaribio.
  5. Kujaribu tu na seti ndogo za data. Matatizo ya utendaji yanaonekana kwa kiwango halisi.
  6. Kuendesha uzalishaji na hali ya utatuzi au mipangilio ya uundaji.
  7. Kutumia akiba ya faili na foleni ya usawazishaji katika uzalishaji.
  8. Kuchukulia utendaji kama mradi wa mara moja badala ya tabia.
  9. Kusahau sehemu ya mbele.
  10. Kuongeza kasi ya vifaa kabla ya kurekebisha msimbo. Seva kubwa huficha tatizo kwa gharama kubwa.

Utendaji na picha pana

Kasi si suala la kiufundi tu. Inaathiri ubadilishaji, mwonekano wa utafutaji, gharama za upangishaji na tija ya wafanyakazi. Pia inahusiana na utunzaji: msimbo safi, uliojaribiwa wenye muundo mzuri ni rahisi kuboresha kwa usalama. Hiyo ni sababu moja tunayohimiza kuwekeza katika ubora mapema, kama ilivyoelezwa katika gharama za matengenezo ya programu, na kuchagua teknolojia sahihi kwa kazi hiyo, ambayo tunaijadili katika Laravel dhidi ya Node.js.

Ikiwa unapanga programu kubwa, utendaji unapaswa kuwa sehemu ya muundo tangu mwanzo: kufikiria kuhusu ujazo wa data, trafiki inayotarajiwa na kile kinachoweza kuhifadhiwa kwenye akiba au kuwekwa kwenye foleni. [Mwongozo wetu wa gharama ya programu ya wavuti] (web-application-development-cost.php) na [Laravel-cost-guide] (laravel-development-cost.php) zinaonyesha jinsi mahitaji ya ukubwa na utendaji yanavyoathiri bajeti.

Utaratibu rahisi wa utendaji

  1. Weka lengo, kwa mfano kurasa chini ya sekunde mbili kwa watumiaji wengi.
  2. Pima kurasa muhimu na urekodi msingi.
  3. Rekebisha tatizo kubwa kwanza, kwa kawaida tatizo la hifadhidata.
  4. Pima upya ili kuthibitisha uboreshaji.
  5. Ongeza akiba na foleni ambapo huondoa kazi inayorudiwa au ya polepole.
  6. Tumia uboreshaji wa uzalishaji katika mchakato wako wa uwasilishaji.
  7. Fuatilia mfululizo na uhakiki baada ya kila toleo kuu.

Mawazo ya mwisho

Matatizo mengi ya utendaji wa Laravel hutoka kwenye orodha fupi ya sababu: maswali mengi sana, faharasa zinazokosekana, kazi ya polepole inayofanywa wakati mtumiaji anasubiri na kukosa uboreshaji wa uzalishaji. Pima, rekebisha hifadhidata kwanza, hifadhi kashe na uweke foleni unachoweza, rekebisha mfumo na seva, na weka taa ya mbele. Mabadiliko madogo, yaliyochaguliwa vizuri, mara kwa mara hufanya programu kuwa haraka mara kadhaa bila kuandika upya.

Ikiwa programu yako ni polepole na hujui ni kwa nini, wasiliana nasi. Tunaweza kuipitia, kupata vikwazo halisi na kupendekeza mpango uliopewa kipaumbele, au, ikiwa unahitaji mikono ya ziada kila mara, unaweza kuajiri watengenezaji wa Laravel kufanya kazi pamoja na timu yako.

Una mradi akilini?

Zungumza na RuhaniSoft