Anbefalede artikler
- Hvilke telefoner overgået iPh…
- C2010-591: IBM Kendskab til Ti…
- Sådan får du den bedste malw…
- Find den rigtige Outsourcing C…
- Hvordan man kan opretholde yde…
- Ting at overveje, før de køb…
- Word Surfer Removal Guide - Hv…
- Stifte bekendtskab med den væ…
- Bygget Din karriere med 101-40…
- Django - Web rammer for perfek…
- GAQM EH-001 certificeret etisk…
- Sådan fjernes Websearch.frees…
- Computer Support i Boston - fr…
- Har du ønsker at afinstallere…
- Kraftfuld og Agile fjernbetjen…
Kategori
- affiliate marketing
- kunst håndværk
- automotive
- boganmeldelser
- forretning
- karriere
- kommunikation
- computere
- uddannelse
- underholdning
- miljø
- finans
- mad drink
- gaming
- sundhed lægelig
- hjem familie
- internet eBusiness
- børn teenagere
- sprog
- legal
- markedsføring
- musik
- kæledyr dyr
- ejendom
- relationer
- self Forbedring
- shopping anmeldelser
- samfund nyheder
- software
- spiritualitet
- sport rekreation
- teknologi
- rejser
- kvinders interesser
- skrive taler
- andre
Almindelige Kodning Problemer med Magento platform af Deepa Ranganathan
Kodning inden for en Loop
Du vil indse, at selv de mindste fejl, der opstår inden for en løkke forstørres. Generelt loops er de største præstationer bugs, især dem, der gentage SQL-forespørgsler eller redundante beregninger
Lad os se, hvordan ineffektivitet overflødige beregninger og SQL-forespørgsler inden for en løkke kan påvirke ydeevnen af din Magento butik
Beregninger inden for en Loop
Hvis du ønsker at beregne størrelsen af et array ved hjælp af en løkke, den ene funktion, som du kan bruge, er count ()
for ($ i = 0; $ i < tælle ($ rækker); $ i ++)
{
//noget kode
}
Count (), individuelt udfører og beregner hurtigt; det sinker kun, når de anvendes i en løkke. Når du begynder at beregne størrelsen af et array med en masse data og bruge count til at levere output, finder du ydeevne bremse uhyre. Årsagen er PHP tilbyder ikke loop-invariant kode bevægelse automatisk.
Den bedste måde at undgå dette ydeevne problem er at kalde funktionen uden for løkken
$ rowNum = tæller ($ rækker);
for ($ i = 0; $ i
{
//noget kode
}
SQL-forespørgsler inden for en Loop
Som det er computing en SQL forespørgsel kan føre til resultater baseret spørgsmål. når du kører det i en løkke, er der en mulighed for at bremse din hjemmeside Oftest vil du se, at Magento modeller er lagt i løkker
foreach ($ this- > getProductIds () som $ productId)
{$ produkt = Mage::getModel('catalog/product')->load($productId);
$this->processProduct($product);
}
An vifte af produkt-id'er er lagt for at behandle modellen. Som det kan ses EAV bruges til at udføre denne løkke, som kan kræve, at du køre flere forespørgsler. I dette tilfælde er antallet af forespørgsler, der bliver henrettet, vil blive ganget med antallet af produkter, og resultatet er en langsom butik, der giver ud dårlige resultater.
Brug Magento data Den bedste måde at optimere ville være at undgå at indlæse produkterne i en løkke. Så hvad kan du gøre? . kollektion, som indlæser en række produkter nemt følgende er et eksempel på, hvordan dataindsamling modeller indsamler produkterne ved at skabe en bred vifte af de forskellige produkt Ids og holde tilføje de ønskede produkter til deres marker
$ kollektion = Mage: : getResourceModel ('katalog /product_collection «)
-getProductIds ()))
-
foreach ($ kollektion som $ produkt)
{
$ this-
}
Når du flytter ud af løkkerne og ind i modellen indsamlingsmetode, vil du se, at udførelsen af butikken faktisk har forbedret. Husk altid at holde styr på hukommelsen, så når du bruger dataindsamling modeller, behøver du ikke indlæse data, der er tungere i forhold til hukommelsen størrelse. Du skal udføre masse opsparing og sletning af de forespørgsler inden modellerne således at opretholde effektiviteten af din butik.
Henter Modeller
hele processen med at indlæse en model ind i din butik er egentlig ikke cachet, hvilket er grunden til, hver gang du kalder belastningen () funktion er visse forespørgsler køres i databasen, hvilket førte problemer med ydeevnen i din butik
$ name = Mage :: getModel ('katalog /vare «) -
$ sku = Mage :: getModel ('katalog /vare ") -
$ attr = Mage :: getModel (' katalog /vare") -
Denne er et klassisk eksempel på, hvordan forespørgsler køres i databasen, hver gang en bestemt model kaldes
Den bedste måde at løse dette problem er at sikre, at hver model er indlæst én gang
$ produkt = Mage :: getModel ('katalog /vare ") -
$ navn = $ produkt-
$ sku = $ produkt-
$ attr = $ produkt-
Nogle gange er du kun beskæftiger sig med det produkt, Id. På et sådant tidspunkt, giver det ikke mening at indlæse hele modellen. Med denne kode kan du nemt lægge produktet Id for et bestemt produkt
$ produkt = Mage :: getModel ('katalog /vare ") -
$ res [' id '] = $ produkt-
En anden populær metode til at udlede produkt-id er at bruge den indfødte produkt metoden getIdBySku ()
$ res ['id'] = Mage :: getModel ('katalog /vare «) -
Kodning Samlinger
andet område i Magento kodning, der tilbyder spørgsmål er samlinger. Samlinger er temmelig effektiv, men som de arbejder med en enorm datasæt, skal du sikre, at du kodning dem med omhu, ellers vil du stå problemer med ydeevnen
Lad os se, hvordan samlinger kan forårsage kodning problemer
Opkald Redundant data Indstiller
Du normalt bruger samlinger til at hente et enkelt element, især det første punkt på løkken første iteration. Så hvad kunne være et problem her? Når du ikke tilbyder en begrænsning på resultaterne, vil løkken holde iteration og give alle de punkter i samlingen i resultatet, i stedet for den oprindelige første punkt. Det følgende er et eksempel på, hvordan samlinger kan give alle de elementer
offentlig funktion getRandomItem ()
{
$ kollektion = Mage :: getResourceModel ('mymodule /my_collection ') - > setRandomOrder ();
retur $ Collection- > getFirstItem ();
}
Anvendelse begrænsning
offentlig funktion getRandomItem ()
{
$ kollektion = Mage :: getResourceModel ('mymodule /my_collection «)
-
returnere $ Collection-
}
Funktionerne $ Collection- > setPageSize () og $ Collection- > setCurPage () tilbyde begrænse antallet af elementer, der hentes fra samlingen
Du kan endda ændre $ Collection-
Author Bio:
Deepa, en teknisk forfatter med Semaphore Software, som nu vier sin tid i at rådgive sine kunder til at ansætte Magento udviklere. Hun tilbyder information samt tips og nyeste tendenser på dette område. Hendes kærlighed til læsning hjælper hende konstant give seneste oplysninger om forskellige tekniske og designmæssige aspekter af Magento
computere
- Instruktion fjernes PriceMinus Adware af Ginna S.
- IBM P2050-004 Test Spørgsmål og svar fra Alana Wolseley
- Bedste ghd håret billige online af Ivan Wang
- Hvordan kan jeg fjerne Keyplayr.com af David Jones
- En rejse ind i den fantastiske verden af i7 processorer med Riley Thomson
- Pegasystems PEGACPBA71V1 eksamensspørgsmål og BrainDumps ved Nhiyam Firyal
- [Udskift luft ipad skærm i Hanoi] Skærm iPad Air vs iPad mini af Cong Thanh
- Den stigende betydning af Custom Website Design af Steve Jo
- Eksplosion-bevis skærm af Lenovo S920 Thanh
- Reducere dine chancer for Svigt i 4A0-100 eksamen ved Broad Belsone
- Nyeste Apple 9L0-422 eksamensspørgsmål Hent fra Nhiyam Firyal
- A opvejet Køb MS 2 Mesos by-grænser ved Fifacoins Scot
- iPad Air tech Specifikation af Clock Peter
- Hvor certificerede teknikere reparere enheder effektivt? af Finn Pollard
- Genius Mind System har for nylig lanceret et nyt bibliotekssystem Software i Noi…