Anbefalte artikler
- Nytte av VPS Hosting for produ…
- Asus Zenfone 6 i øyet teknolo…
- Installasjon av overvåkingska…
- Fjern Goldensearch.org Hijack …
- De nyeste inkludering funksjon…
- Bunter av funksjoner i Cloud r…
- Batteri for IBM ThinkPad T43 S…
- Få Drage Trinkets i RS3 Treas…
- Løsning å Websearch.searchsu…
- Fire Må Vite fakta om HP2-B10…
- Microsoft Dynamics CRM Service…
- LPI 010-150 Test Spørsmål og…
- Hvorfor Computer Reparasjon Av…
- Apples nye Ultra-tynn Viftelø…
- Valentine Week - Symbol of Lov…
Kategori
- affiliate marketing
- kunst håndverk
- bilbransjen
- bokanmeldelser
- bedrift
- karriere
- kommunikasjon
- datamaskiner
- utdanning
- underholdning
- miljø
- finansiere
- mat drikke
- gaming
- helse medisinsk
- hjem familie
- internett eBusiness
- barn tenåringer
- språk
- juridisk
- markedsføring
- musikk
- kjæledyr dyr
- eiendom
- relasjoner
- selv forbedring
- kjøpe anmeldelser
- samfunn nyheter
- programvare
- åndelighet
- sport og rekreasjon
- teknologi
- reise
- kvinners interesser
- skriver snakker
- andre
Vanlige Coding Problemer med Magento Platform av Deepa Ranganathan
Coding innenfor en Loop
Du vil innse at selv den minste feil som oppstår i en sløyfe er forstørret. Vanligvis sløyfer er de største ytelses bugs, spesielt de som gjentar SQL-spørringer eller redundante beregninger
La oss se hvordan ineffektivitet av redundante beregninger og SQL-spørringer i en sløyfe kan påvirke ytelsen din Magento butikken
Beregninger innenfor en Loop
Hvis du ønsker å beregne størrelsen på en array ved hjelp av en loop, én funksjon som du kan bruke er count ()
for ($ i = 0; $ i < telle ($ p); $ i ++)
{
//noen kode
}
Count (), utfører individuelt og beregner fort; det bremser ned bare når de anvendes i en sløyfe. Når du begynner å beregne størrelsen på en matrise med mye data og bruke telling for å levere produksjonen, vil du finne resultatene sakker umåtelig. Årsaken til at PHP ikke tilbyr sløyfe-invariant kode bevegelse automatisk.
Den beste måten å unngå dette ytelsesproblemet er å ringe funksjon utenfor løkken
$ rowNum = count ($ p);
for ($ i = 0; $ i
{
//noen kode
}
SQL spørringer innenfor en Loop
Som det beregner en SQL-spørring kan føre til ytelsesbaserte spørsmål;. når du kjører den i en loop, det er en mulighet for å bremse ned ditt nettsted Som oftest vil du se at Magento modeller er lagt i sløyfer
foreach ($ this- > getProductIds () som $ ProductID)
{$ produkt = Mage::getModel('catalog/product')->load($productId);
$this->processProduct($product);
}
An rekke produkt IDer er lastet for å behandle modellen. Som det kan sees EAV blir brukt til å utføre denne løkke som kan kreve at kjøre flere spørringer. I dette tilfellet er antallet av spørringer som blir eksekvert vil bli multiplisert med antall produkter, og resultatet er en langsom butikk som gir ut dårlig ytelse.
Den beste måten å optimalisere ville være å unngå å bruke produkter i en loop. Så, hva kan du gjøre? Bruk Magento data . kolleksjon som laster et sett av produkter lett Følgende er et eksempel på hvordan datainnsamling modeller samle produkter ved å skape en rekke forskjellige produkt Ids og holde legge de etterspurte produkter til sine felt
$ samling = Mage: : getResourceModel ('Katalog /product_collection')
-getProductIds ()))
-
foreach ($ samling som $ produkt)
{
$ this-
}
Når du flytter ut av sløyfene og inn i modellen innsamlingsmetode, vil du se at resultatene av butikken har faktisk forbedret. Husk alltid å holde en sjekk på minnet, slik at når du bruker datainnsamlings modeller, trenger du ikke laste inn data som er tyngre i forhold til størrelsen på minnet. Du må utføre masse sparing og sletting av spørringene innenfor modellene, slik som å opprettholde ytelsen til butikken.
Laster Modeller
Hele prosessen med å laste inn en modell inn i butikken din er egentlig ikke bufret, det er derfor hver gang du ringer lasten () -funksjonen er visse spørsmål kjøres i databasen, og dermed forårsaker ytelsesproblemer i butikken din
$ name = Mage :: getModel ('Katalog /produkt') -
$ sku = Mage :: getModel ('Katalog /produkt') -
$ attr = Mage :: getModel ('Katalog /produkt') -
Dette er et klassisk eksempel på hvordan spørsmål blir drevet på databasen hver gang en bestemt modell kalles
Den beste måten å takle dette problemet er å sikre at hver modell er lastet bare én gang
$ produkt = Mage :: getModel ('Katalog /produkt') -
$ name = $ produkt-
$ sku = $ produkt-
$ attr = $ produkt-
Noen ganger er du bare opptatt av produktet Id. På et slikt tidspunkt, betyr det ikke fornuftig å laste hele modellen. Med denne koden kan du enkelt laste produktet Id for et bestemt produkt
$ produkt = Mage :: getModel ('Katalog /produkt') -
$ res ['id'] = $ produkt-
En annen populær metode for å utlede produkt ID er å bruke den opprinnelige produktet metoden getIdBySku ()
$ res ['id'] = Mage :: getModel ('Katalog /produkt') -
Coding samlinger
annet område i Magento koding som gir problemer er samlinger. Samlinger er ganske effektiv, men som de jobber med et stort datasett, må du sørge for at du er koding dem med omhu, ellers vil du møte ytelsesproblemer
La oss se hvordan samlinger kan føre til koding problemer
Calling Redundant datasett
Du bruker vanligvis samlinger for å hente en enkelt element spesielt det første elementet på løkken første iterasjon. Så, hva kan være et problem her? Når du ikke har en begrensning på resultatene, vil løkken holde itera og gi ut alle elementene i samlingen i resultatet, i stedet for den opprinnelige første elementet. Det følgende er et eksempel på hvordan samlinger kan gi ut alle elementene
offentlig funksjon getRandomItem ()
{
$ samling = Mage :: getResourceModel ('mymodule /my_collection ') - > setRandomOrder ();
retur $ samling-> getFirstItem ();
}
Bruk av foreldelses
offentlig funksjon getRandomItem ()
{
$ samling = Mage :: getResourceModel ('mymodule /my_collection')
-
returnere $ samling-
}
Funksjonene $ samling-> setPageSize () og $ samling-> setCurPage () tilbudet begrense antall elementer som blir hentet fra samlingen
Du kan selv endre $ samling-
Forfatter Bio:
Deepa, en teknisk forfatter med Semafor Software, som nå vier sin tid i å gi råd sine kunder å leie Magento utviklere. Hun tilbyr informasjon samt tips og nyeste trendene i dette domenet. Hennes kjærlighet for lesing hjelper henne stadig gir oppdatert informasjon om ulike tekniske og design aspekter av Magento
datamaskiner
- [Utskifting skjermen ekte iphone 6] iPhone 6 vs. Moto X Moto X Thanh
- Tech Support for å løse alle Toshiba Skrivere Issue av Andrew Smith
- Beste måten å fjerne annonser fra Savvy SUGGESTOR Pop up Virus (trinnvise inst…
- Online Laptop Reparasjon Guides by McLaurin Williams
- Fjern /bli kvitt Fragile Fixer Adware av Henry N.
- En Spyware Detector Beskytter datamaskinen mot alle typer virus og trusler etter…
- Slik fjerner BestPricesApp manuelt? (Step by Step Instruction) av David Jones
- Nytte elektroniske gadgets online på tunge rabatter av Patsy Patti
- Billig ghd australia operere ut kan muligens bli høyt priset av Sella Oscar001
- Slik fjerner HPLEAD.ISUPPORTCORP.COM - Working fjerning Guide av David Jones
- Kan Fornyet Datamaskiner Arbeid av Angelina Rose
- Hosted ACT CRM hjelper for å spare din innsats og midler og dermed leverer en p…
- Verdifulle plan neste ghd av Lily Lucy
- 74-335: Forstå Lync Network Readiness Assessment av Aini Adiba
- SAP C_HANAIMP151 Siste virkelige eksamen Study Material av Alana Wolseley