artículos recomendados
- Instrucción de Cómo quitar P…
- HP HP2-K32 Selling HP SMB alma…
- Las cintas de copia de segurid…
- Cisco 400-201 Braindumps exame…
- Cómo quitar /Desactivar Deal4…
- Lograr Sendero Rompiendo ERP c…
- Google AdWords Biz vista previ…
- Canadá encabezó la delegació…
- Pakistán sitios proxy para de…
- Diseño Web Sensible es el fut…
- IPad Mini 3 (oro) por Almir Vi…
- Nueva MB2-707 examen volcados …
- Advanatge de la inversión en …
- Blu-ray para el MacBook Air-Wa…
- [PARA EL VIDRIO IPHONE] VERIZO…
Categoría
- la comercialización del afiliado
- Arte y Artesanía
- automotor
- reseñas de libros
- negocio
- carrera
- comunicaciones
- computadoras
- educación
- el entretenimiento
- ambiente
- finanzas
- drink
- juego de azar
- médica de la salud
- hogar familiar
- eBusiness internet
- adolescentes niños
- idiomas
- legal
- márketing
- música
- animales de animales domésticos
- bienes raíces
- relaciones
- mejora personal
- Añadir a la Cesta
- noticias sociedad
- software
- espiritualidad
- recreación y Deportes
- tecnología
- viajar
- intereses para mujer
- escritura habla
- otros
Problemas comunes de codificación con la plataforma Magento por Deepa Ranganathan
Codificación dentro de un bucle
Te darás cuenta de que se amplía hasta el más mínimo error que se produce dentro de un bucle. En general, los bucles son los mayores errores de rendimiento, sobre todo los que reiteran consultas SQL o cálculos redundantes
Vamos a ver cómo las ineficiencias de los cálculos redundantes y consultas SQL dentro de un bucle pueden afectar el rendimiento de su tienda Magento
Cálculos dentro de un bucle
Si desea calcular el tamaño de una matriz mediante un bucle, la función que usted puede utilizar es count ()
for ($ i = 0; $ i < count ($ filas); $ i ++)
{
//algún código
}
Count (), lleva a cabo de forma individual y calcula rápida; se ralentiza sólo cuando utiliza dentro de un bucle. Al iniciar el cálculo del tamaño de una matriz con una gran cantidad de datos y el uso de la cuenta para entregar la salida, se encuentra el rendimiento ralentizar enormemente. La razón es PHP no ofrece código de movimiento en lazo invariante automáticamente.
La mejor manera de evitar este problema de rendimiento es llamar a la función fuera del bucle
$ rownum = count ($ filas);
for ($ i = 0; $ i
{
//algún código
}
Las consultas SQL dentro de un bucle
Como está calculando una consulta SQL puede conducir a problemas basados en el desempeño;. cuando se ejecuta dentro de un bucle, existe la posibilidad de reducir la velocidad de su sitio web mayoría de las veces, usted verá que los modelos de Magento son cargados en bucles
foreach ($ this- > getProductIds () como $ productId)
{$ producto = Mage::getModel('catalog/product')->load($productId);
$this->processProduct($product);
}
An matriz de ID de producto se carga con el fin de procesar el modelo. Como puede verse EAV se utiliza para llevar a cabo este bucle que podría requerir que ejecutar varias consultas. En este caso, el número de consultas que se están ejecutando se multiplicará con el número de productos, y el resultado es una tienda lenta que da hacia fuera los malos resultados
.
La mejor forma de optimizar sería evitar carga de los productos en un bucle. Así que, ¿qué puedes hacer? Utilice datos de Magento . colección que carga un conjunto de productos fácilmente que sigue es un ejemplo de cómo los modelos de recogida de datos recogen los productos mediante la creación de una gran variedad de los diferentes productos Ids y mantener la adición de los productos solicitados a sus campos
$ colección = Mago: : getResourceModel ('Catálogo /product_collection')
-getProductIds ()))
-
foreach ($ colección como $ producto)
{
$ this-
}
Cuando se mueve fuera de los bucles y en el método de recolección de modelo, se verá que el rendimiento de la tienda de hecho ha mejorado. Recuerde siempre mantener un control sobre la memoria, de modo que cuando se utilizan modelos de recogida de datos, no cargue los datos que son más pesados en comparación con el tamaño de la memoria. Usted debe realizar el ahorro de masas y eliminación de las consultas dentro de los modelos con el fin de mantener el rendimiento de su tienda.
Cargando Modelos
Todo el proceso de carga de un modelo en su tienda no es realmente caché, por lo que cada vez que se llama a la función load (), determinadas consultas se ejecutan dentro de la base de datos, lo que causa problemas de rendimiento en su tienda
$ name = Mago :: getModel ('Catálogo /producto) -
$ sku = Mago :: getModel ('Catálogo /producto ") -
$ attr = Mago :: getModel (' Catálogo /producto") -
Este es un ejemplo clásico de cómo se ejecutan consultas en la base de datos cada vez que un modelo en particular se llama
La mejor manera de abordar este problema es asegurar que cada modelo se carga una sola vez
$ producto = Mago :: getModel ('Catálogo /producto ") -
$ nombre = $ producto-
$ sku = $ producto-
$ attr = $ producto-
A veces, sólo se ocupa de la identificación del producto. En ese momento, no tiene sentido para cargar todo el modelo. Con este código se pueden cargar fácilmente el producto Id para un determinado producto
$ producto = Mago :: getModel ('Catálogo /producto ") -
$ res [' id '] = $ producto-
Otro método popular para obtener el ID del producto es utilizar el método del producto nativo getIdBySku ()
$ res ['id'] = Mago :: getModel ('Catálogo /producto) -
Codificación Colecciones
La otra área en Magento codificación que ofrece temas es colecciones. Las colecciones son bastante eficiente, pero a medida que trabajan con un conjunto de datos enorme, usted tendrá que asegurarse de que usted les está codificando con cuidado, de lo contrario se enfrentará a problemas de rendimiento
Vamos a ver cómo las colecciones pueden causar problemas de codificación
Llamadas redundante de datos Establece
Por lo general, utiliza las colecciones para recuperar un solo elemento en especial el primer punto de la primera iteración del bucle. Por lo tanto, lo que podría ser un problema aquí? Cuando usted no ofrece una limitación en los resultados, el bucle mantendrá iteración y dar a conocer todos los elementos dentro de la colección en el resultado, en lugar de la primera elemento original. El siguiente es un ejemplo de cómo las colecciones pueden dar a conocer todos los elementos
Función pública getRandomItem ()
{
$ colección = Mago :: getResourceModel ('mimodulo /my_collection ') - > setRandomOrder ();
retorno $ collection- > getFirstItem ();
}
La aplicación de la limitación
Función pública getRandomItem ()
{
$ colección = Mago :: getResourceModel ('mimodulo /my_collection')
-
devolver $ collection-
} México La funciones $ collection- > setPageSize () y $ collection- > setCurPage oferta () limitar el número de elementos que se recupera de la colección
Usted puede incluso modificar $ collection-
Biografía del autor:
Deepa, un escritor técnico con semáforo Software, que ahora dedica su tiempo en el asesoramiento a sus clientes a contratar a los desarrolladores de Magento. Ella ofrece información, así como consejos y noticias de moda en este dominio. Su amor por la lectura le ayuda constantemente proporcionar la información más reciente sobre los diferentes aspectos técnicos y de diseño de Magento
computadoras
- Guías para Eliminar /deshacerse de Birdysearch.com página inicial de Henry N.
- Etapa temprana del cáncer de ovario se mostrará y cómo por Ngat Nguyen
- Los beneficios de un Escudo Laptop por Joseph Marie
- Cómo desinstalar AVG Secure Search & Eliminación de virus por Aneesh Ahma…
- Algunas reflexiones importantes sobre la Búsqueda de un servicio de reparación…
- ¿Por qué su empresa necesita plataforma de desarrollo móvil? por Nayra Singh
- Métodos de madera sustrato comprobación por Na Huang
- La razón detrás de la demanda de la tecnología Java por Steve Nellon
- silla de la cocina auténtica Sánchez Jersey Cuo Yun
- Conseguir Precisión Con Avance En Codificación Posible Con Codificación Botel…
- Reparación de la célula Servicios de Austin para cada problema por Mclaurin Wi…
- Router Linksys Tech Número de soporte telefónico por Andrew Smith
- ¿Qué debe hacer cuando cargue la batería Dell KD476 o adaptador? por Appleoti…
- Aplicaciones Mobile Development Company en la India. por I-softinc team
- Safewow libre de 8% de descuento wow venta de oro y obtener la ruta Ashran Vuelo…