Optymalizacja wirtualizacji

  1. Profilowanie żądań bazy danych
  2. Profilowanie PHP VirtueMart za pomocą narzędzia XHprof
  3. Optymalizacja VirtueMart: wyniki
  4. Optymalizacja VirtueMart: ulepszenia

Wyzwaniem była optymalizacja VirtueMart . Zahamował wizytówkę towarów. Początkowo podejrzenie padło na bazę danych.

Profilowanie żądań bazy danych

Profilowanie perkonoy nie ujawnił niczego kryminalnego:

# Ogółem: 38 łącznie, 16 unikalnych, 0 QPS, 0x współbieżności ____________________ # Łączny atrybut min max avg 95% stddev mediana # ========================= == ======= ======= ======= ======= ======= # Czas wykonywania 405ms 10ms 11ms 11ms 11ms 364us 10ms # Czas blokady 0 0 0 0 0 0 # # Wiersze wysłane 0 0 0 0 0 0 0 # Wiersze badają 0 0 0 0 0 0 # # Rozmiar zapytania 15.76k 39 738 424,82 719,66 255,28 487,09

Całkowita objętość wszystkich odpowiedzi bazy danych wynosi 15,76k, co najmniej 39 bajtów, maksimum to 738, czas wykonywania wynosi 405 milisekund, minimum to 10 ms, a maksimum to 11.

Dane zostały uzyskane bez użycia pamięci podręcznej zapytań, nie zawierały „szybkich” zapytań, które były wykonywane przez mniej niż 0,01 sekundy.

Oczywiście 0,4 sekundy na bazę danych. Musimy starać się wydać nie więcej niż 0,2 sekundy na całą stronę.

Same zapytania są dość szybkie, nie ma specjalnej potrzeby optymalizacji. Biorą „ilość”.

W sytuacji, gdy otwarcie strony zajmuje 3 sekundy, hamulce z bazą danych 0,4 sekundy nie są wąskim gardłem. Po „rozgrzaniu” pamięci podręcznej zapytań czas ten znacznie się zmniejszy.

Pozostałe dane są normalne. Bez długich żądań.

Profilowanie PHP VirtueMart za pomocą narzędzia XHprof

Profilowanie PHP VirtueMart za pomocą narzędzia XHprof

Powyżej - wyniki profilowania przy użyciu VirtueMart 2.0.20b Xhprof . Wykonano profilowanie strony prezentacyjnej produktu.

Runtime - 1,1 sekundy, z włączoną pamięcią podręczną zapytań, tak jak w bieżącej witrynie.

Po pobraniu próbek produktów zgodnie z warunkiem getProductListing, w skrypcie dla każdego produktu, pobierane są szczegółowe informacje z getProductSingle.

Zajmuje to 50% czasu (IWall), a proces ten jest uruchamiany dla każdego produktu - łącznie 126 razy (połączenia).

Każde wywołanie getProductSingle powoduje, że pięć zapytań do bazy danych (według kodu) => 630 zapytań. Na zdjęciu 1737 to całkowita liczba dla całej strony.

Baza danych z wieloma zapytaniami VirtueMart radzi sobie z łatwością - tylko 10% całkowitego czasu (mysqli_query). Dziękuję za pamięć podręczną!

Prawidłowo powinno się to robić w ten sposób: po uzyskaniu wszystkich informacji o wybranych produktach jest ono rozproszone. Więc kosztuj pięć wniosków.

Optymalizacja VirtueMart: wyniki

VirtueMart zwalnia z powodu nieprawidłowego wdrożenia odbioru listy produktów, jakość tego kodu pozostawia wiele do życzenia. Przyspieszenie w pracy z bazą danych niczego nie przyniesie.

Trzy opcje:

Optymalizacja VirtueMart: ulepszenia

Od wersji do wersji może się różnić. Oto mój przypadek:

administrator / components / com_virtuemart / models / product.php

funkcja publiczna getProduct ($ virtuemart_product_id = NULL, $ front = TRUE, $ withCalc = TRUE, $ onlyPublished = TRUE, $ ilość = 1, $ customfields = TRUE, $ virtuemart_shoppergroup_ids = 0) {if (true &&! pusty ($ virtuemart_product_id) && $ front && JFactory :: getConfig () -> get ('caching')> = 1) {if (! class_exists ('CurrencyDisplay')) {wymagaj (JPATH_VM_ADMINISTRATOR. DS. „Pomocnicy”. DS. „Currencydisplay.php”); // inny błąd 503} if ($ virtuemart_shoppergroup_ids! = 0 i is_array ($ virtuemart_shoppergroup_ids)) {$ virtuemart_shoppergroup_idsString = implode ('', $ virtuemart_shoppergroup_ids); } else {$ virtuemart_shoppergroup_idsString = $ virtuemart_shoppergroup_ids; } $ withRating = $ this -> withRating? TRUE: 0; $ productKey = $ virtuemart_product_id. „-”. $ front. „-”. $ withCalc. „-”. $ onlyPublished. „-”. $ ilość. „-”. $ customfields. „-”. $ virtuemart_shoppergroup_idsString. „-”. $ withRating; $ mycache = JFactory :: getCache ('com_virtuemart_speedup', ''); $ mycache -> setLifeTime (86400); $ cache_content = $ mycache -> get ($ productKey); jeśli (! is_object ($ cache_content)) {$ cache_content = $ this -> _getProduct ($ virtuemart_product_id, $ front, $ withCalc, $ onlyPublished, $ amount, $ customfields, $ virtuemart_shoppergroup_ids); $ mycache -> store ($ cache_content, $ productKey); } return $ cache_content; } else {return $ this -> _getProduct ($ virtuemart_product_id, $ front, $ withCalc, $ onlyPublished, $ amount, $ customfields, $ virtuemart_shoppergroup_ids); }} public function _getProduct ($ virtuemart_product_id = NULL, $ front = TRUE, $ withCalc = TRUE, $ onlyPublished = TRUE, $ ilość = 1, $ customfields = TRUE, $ virtuemart_shoppergroup_ids = 0) {// stara wersja funkcji _getProduct}

Меню сайта
Мини-профиль
  • Регистрация Напомнить пароль?

    Бесплатно можно смотреть фильмы онлайн и не забудьте о шаблоны dle на нашем ресурсе фильмы бесплатно скачать c лучшего сайта
    Опросы
    Топ новости
    Инструкция: как включить подсветку клавиатуры на ноутбуке Asus


    Заблокировалась и отключилась встроенная клавиатура на ноутбуке: как снять блокировку и включить? 


    Ремонт ноутбука ASUS N75S в Санкт-Петербурге (СПб): замена дисплея, замена клавиатуры, ремонт корпуса Асус N75S, замена матрицы
    Услуга Стоимость, руб. Диагностика ASUS N75S Бесплатно (500р при необходимости разбора) Профилактические работы с системой охлаждения + замена кулера 2500 р * Замена чипа (видеочипа) ASUS N75S 6000-6500 Замена

    Как поменять клавиатуру на ноутбуке самостоятельно?
    Владельцы мастерских по ремонту компьютеров часто встречаются со случаями, когда приносят ноутбук, на который была пролита какая-либо жидкость. В некоторых случаях подобная ситуация означает, что понадобится

    Как правильно и быстро снять клавиши с клавиатуры ноутбука
    При продолжительной и тем более неаккуратной эксплуатации ноутбука часто образуются проблемы с клавишами. Они могут залипать, плохо нажиматься, а некоторые клавиши и вовсе могут сломаться. Для решения

    Как почистить клавиатуру компьютера
    С появлением компьютера человек все больше времени проводит за ним. Это и рабочий инструмент, и средство развлечения. Поэтому, совсем неудивительно, что определенные устройства, используемые для ввода

    Замена и ремонт клавиатуры для ноутбука, видео-инструкции
    Замена клавиатуры и кнопок ноутбука показано на видео с подробным объяснением процесса. Цена замены в сервисном центре от 200 рублей . Звоните по тел: +7 (812) 640-03-20 . Замена или ремонт

    4 способа, как отключить клавиатуру на ноутбуке
    Если у вас есть ноутбук, то клавиатура и тачпад на нем являются важными составляющими, без которых работа на устройстве будет вызывать сложности. Конечно есть альтернативы в виде клавиатур и мышей, которые

    Как правильно и быстро снять клавиши с клавиатуры ноутбука
    При продолжительной и тем более неаккуратной эксплуатации ноутбука часто образуются проблемы с клавишами. Они могут залипать, плохо нажиматься, а некоторые клавиши и вовсе могут сломаться. Для решения

    Как правильно и быстро снять клавиши с клавиатуры ноутбука
    При продолжительной и тем немало неаккуратной эксплуатации ноутбука часто образуются проблемы с клавишами. Они могут залипать, нехорошо нажиматься, а некоторые клавиши и вовсе могут сломаться. Для решения