articoli consigliati
- Il Giappone è schiacciante se…
- Arrivare a conoscere circa 250…
- MIGLIOR COMPUTER PORTATILI per…
- Il nuovo sistema informatico d…
- Un modo facile per aumentare l…
- Il modo più semplice per riso…
- Per quanto riguarda la ghd a b…
- Come Computer Le prestazioni p…
- iPad Air e iPad mini 2 3: guar…
- MASCHERA strofinato da malform…
- Affidabile Modalità di compon…
- Estivo informativo su web desi…
- Ultimo metodo è quello di and…
- Come giudicare chi è verament…
- Cercando le migliori offerte p…
Categoria
- marketing di affiliazione
- arti mestieri
- settore automobilistico
- recensioni di libri
- attività commerciale
- carriera
- comunicazioni
- computer
- educazione
- divertimento
- ambiente
- finanza
- cibo bevanda
- gioco
- medico salute
- casa di famiglia
- Internet eBusiness
- bambini adolescenti
- le lingue
- legale
- marketing
- musica
- animali domestici animali
- immobiliare
- relazioni
- auto-miglioramento
- recensioni Carrello
- cronache mondane
- software
- spiritualità
- ricreazione sport
- tecnologia
- viaggiare
- interessi delle donne
- la scrittura che parla
- altrui
Problemi di codifica comuni con Magento piattaforma di Deepa Ranganathan
Codifica all'interno di un ciclo
Vi renderete conto che anche il più piccolo errore che si verifica all'interno di un ciclo è ingrandita. Generalmente, i cicli sono i più grandi errori di prestazione, in particolare quelli che ribadiscono query SQL o calcoli ridondanti
Vediamo come inefficienze dei calcoli ridondanti e query SQL all'interno di un ciclo in grado di influire sulle prestazioni del vostro negozio Magento
Calcoli entro un
Loop
Se si vuole calcolare la dimensione di un array usando un ciclo, quello funzione che si può utilizzare è count ()
for ($ i = 0; $ i < contare ($ file); $ i ++)
{
//codice
}
Count (), esegue e calcola veloce individualmente; rallenta solo quando utilizzato all'interno di un ciclo. Quando si avvia il calcolo della dimensione di una matrice con un sacco di dati e utilizzare conteggio per fornire l'uscita, troverete il rendimento rallentamento immensamente. Il motivo è il PHP non offre codice movimento loop-invariante automaticamente.
Il modo migliore per evitare questo problema di prestazioni è quello di chiamare la funzione di fuori del ciclo
$ rownum = count ($ file);
for ($ i = 0; $ i
{
//codice
}
query SQL all'interno di un ciclo
Come sta calcolando una query SQL può portare a problemi di prestazioni basate;. quando lo si esegue all'interno di un ciclo, vi è la possibilità di rallentare il vostro sito web Il più delle volte, si vedrà che i modelli Magento sono caricati nei cicli
foreach ($ this- > getProductIds () come $ productId)
{$ product = Mage::getModel('catalog/product')->load($productId);
$this->processProduct($product);
}
An matrice di ID del prodotto viene caricato al fine di elaborare il modello. Come si può vedere EAV è usato per effettuare questo ciclo che potrebbe richiedere di eseguire diverse query. In questo caso, il numero di query che si stanno eseguendo sarà moltiplicato con il numero di prodotti, e il risultato è un negozio lento che dà fuori scarse prestazioni.
Il modo migliore per ottimizzare sarebbe quella di evitare di caricare i prodotti in un ciclo. Quindi, cosa si può fare? dati Usa Magento . collezione che carica un insieme di prodotti facilmente seguito è riportato un esempio di come i modelli di raccolta dei dati raccolgono i prodotti attraverso la creazione di una matrice del prodotto diverso Ids e continuare ad aggiungere i prodotti richiesti ai loro campi
$ collezione = Mage: : getResourceModel ('catalogo /product_collection')
-getProductIds ()))
-
foreach ($ collezione da $ prodotto)
{
$ this-
}
Quando si sposta dai passanti e nel metodo modello di raccolta, si vedrà che le prestazioni del negozio ha infatti migliorato. Ricordate sempre di mantenere un controllo sulla memoria, in modo che quando si utilizzano modelli di raccolta dei dati, non caricare i dati che è più pesante rispetto alla dimensione della memoria. È necessario eseguire il risparmio di massa e la cancellazione delle query all'interno dei modelli, in modo da mantenere le prestazioni del vostro negozio.
Caricamento modelle
L'intero processo di caricamento di un modello nel tuo negozio non è davvero cache, che è il motivo per cui ogni volta che si chiama la funzione load (), alcune query vengono eseguiti all'interno del database, causando problemi di prestazioni nel tuo negozio
$ name = Mage :: getModel ('/Catalogo della merce') -
$ sku = Mage :: getModel ('catalogo /prodotto') -
$ attr = Mage :: getModel ('catalogo /prodotto') -
è un classico esempio di come le query vengono eseguiti sul database ogni volta che un particolare modello si chiama
Il modo migliore per affrontare questo problema è quello di garantire che ogni modello viene caricato una volta sola
$ prodotto = Mage :: getModel ('catalogo /prodotto') -
$ name = $ product-
$ sku = $ product-
$ attr = $ product-
A volte, siete interessati solo con il numero di serie. In un momento, esso non ha senso caricare l'intero modello. Con questo codice si può facilmente caricare il prodotto ID per un particolare prodotto
$ product = Mage :: getModel ('catalogo /prodotto') -
$ res ['id'] = $ prodotto-
Un altro metodo popolare per ricavare ID del prodotto è quello di utilizzare il metodo del prodotto nativo getIdBySku ()
$ res ['id'] = Mage :: getModel ('/Catalogo della merce') -
Codifica Collezioni
L'altra area nella codifica Magento che offre problemi è collezioni. Le collezioni sono abbastanza efficienti, ma che lavorano con un enorme insieme di dati, si dovranno garantire che li esegue la codifica con cura, altrimenti si dovrà affrontare problemi di prestazioni
Vediamo come collezioni possono causare problemi di codifica
Chiamata ridondante dei dati Imposta
È generalmente utilizza collezioni per recuperare un singolo elemento in particolare il primo punto prima iterazione del loop. Allora, che cosa potrebbe essere un problema qui? Quando non offri una limitazione sui risultati, il ciclo continuerà l'iterazione e dare fuori tutti gli articoli della collezione nel risultato, invece del primo articolo originale. Il seguente è un esempio di come le collezioni possono dare fuori tutti gli articoli
public function getRandomItem ()
{
$ collezione = Mage :: getResourceModel ('mymodule /my_collection ') - > setRandomOrder ();
ritorno $ Collezione > getFirstItem ();
}
L'applicazione del limite
public function getRandomItem ()
{
$ collezione = Mage :: getResourceModel ('mymodule /my_collection')
-
return $ Collezione
}
Le funzioni $ Collezione > setPageSize () e $ Collezione > setCurPage () offerta limitare il numero di articoli che sono recuperata dalla raccolta
È anche possibile modificare $ Collezione
Bio autore:
Deepa, un technical writer con i semafori software, che ora dedica il suo tempo a consigliare ai propri clienti di assumere gli sviluppatori di Magento. Offre informazioni, nonché suggerimenti e ultime tendenze in questo settore. Il suo amore per la lettura aiuta a fornire continuamente le informazioni più aggiornate sui diversi aspetti tecnici e progettuali di Magento
computer
- Ottenere affidabile rete Industriale Per Smarter futuro. da Garantire Services
- Essenziali Dettagli di MB6-871 esame di Aini Adiba
- Una breve introduzione su E-401 Android Application Development da Aini Adiba
- Lo svantaggio di modulare potenza dell'UPS Renda up power
- Migliora il tuo Competenza con 700-505 SMB Specialization per Account Manager di…
- Come cancellare LOLLISCAN Adware da David Jones
- Trymedia.ew32 /sality.gen.z Istruzioni di rimozione da Amelia H.
- Come rimuovere manualmente Sweet-page.com di Selina Garstom
- Sony Xperia Z1 Sostituire schermo Cong Thanh
- Intelligente Device Management griglia della rete disponibile in piattaforme XML…
- Computer su errori di Windows e di altri problemi di connessione interne Neuro T…
- Come configurare Yahoo Mail in Outlook 2010? Evitare alcuni errori comuni di Mik…
- Hai bisogno di numero di assistenza clienti di Yahoo per recuperare la password …
- Riparazione iPhone durante l'aggiornamento IOS 8 dal Cong Thanh
- Come rimuovere magica Trova Adware - Lavorare rimozione Guida di Emily B.