Ing. Jan Mittner 15.12.2011. 1. Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy.

Slides:



Advertisements
Podobné prezentace
Web Michal Žůrek Jak se na něj dívám já..
Advertisements

Martin Šimeček.  seznámit s APEXem – poskytnout základní manuál  vytvořit webovou aplikaci pro sběr informací o databázových systémech  naplnit databázi.
Systém Drupal a nejen školní weby
Ing. Jan Mittner  Ing. Jan Mittner    KH  v případě zájmu vždy po cvičení.
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Aplikační a programové vybavení
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Přednáška č. 5 Proces návrhu databáze
Vzdělávací technologie Wonderware Historian Clients QUERY.
Zend Framework 2. Svět se změnil! Zapomeňte! Všechno je jinak!
Ing. Jan Mittner IT445 – Komponenty UI, Mail.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Ing. Lukáš Burkoň Debugging 2. Testování 3. Unit testy 2.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Úvod do databází Databáze.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
VY_32_INOVACE_4.3.IVT1.11/Oc Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jaroslav Ochodek CZ.1.07/1.5.00/ Tvorba webových.
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
Moderní formy tvorby webových stránek Martin Šebela, 9.A vedoucí práce: Mgr. Jan Kříž.
Slide 1 A Free sample background from © 2003 By Default! Jiří Kůsa Testování propustnosti síťového firewallu.
Vývoj aplikací pro SharePoint
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
PHP – Základy programování
Uložení a analýza bodového mračna bodů v Oracle Spatial Fakulta aplikovaných věd / Katedra matematiky Západočeská univerzita v Plzni Bc. Michal.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
BAKALÁŘSKÁ PRÁCE Tomáš Janda
Tomáš Urych, ESO9 Intranet a.s.
4IT445 – Testování a ladění v PHP Ing. Jan Mittner
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Databázové systémy Architektury DBS.
Ing. Jan Mittner Autentizace 2. Pluginy 3. Autorizace 4. Útoky 2.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Jan Majer, Tomáš Pytlík, Tomáš Vondráček IKE D o k u m e n t o g r a f i c k é i n f o r m a č n í s y s t é m y.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
Logování AKORDu Vít Ochozka. K čemu nám slouží Odhalení chyb aplikace Odhalení chybné konfigurace Odhalení chybného chování konkrétního uživatele nebo.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Ing. Jan Mittner Základy práce s formuláři 2. Více layoutů 3. Optimalizace práce s modely 2.
Novinky pro webovou platformu Jiří Burian, Tomáš Kutěj,
Ing. Jan Mittner Zend_Feed 2. XmlWriter 3. SimpleXml 4. sitemap 2.
Seznam.cz, a.s. I Radlická 2 I Praha 5 I Tel.: I Fax: FastRPC meziserverová.
Jednotná informační brána Cyklus školení Elektronické informační zdroje a databáze Národní knihovna ČR , , , ,
PHP PHP - úvod - 02 Mgr. Josef Nožička IKT PHP
Posouzení možnosti využití ArcIMS pro prezentaci rozsáhlých rastrových dat Diplomová práce Vedoucí: Dr. Ing. Bronislava Horáková Zpracovatel:Tomáš Ježek.
Jak vyhledávat informace na Internetu?
Datovýsklad Datový sklad V budoucích službách státního archivu.
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
Inzerce sběratelských předmětů Jan Matějka 4.B 2013/2014.
Geoinformatika Presentace diplomové práce Využití mapového serveru ArcIMS pro dynamické generování statistických map v prostředí WWW Vedoucí práce : Ing.
PHP Programy pro tvorbu WWW stránek - 01
Systém pro sledování vývoje cen produktů AVT LS 2015 Petr Kalas.
Publikujeme s Autodesk MapGuide v.5.0 Ing. Jan Růžička, Dr. Ing. Jiří Horák VŠB-Technická univerzita Ostrava
AVT projekt Ondřej Janošík. Základní informace Zadání projektu – SQL SELECT generátor Proč právě tento projekt? Úvod do problematiky – SQL (select)
Perzistence XML dat Kamil Toman
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
Univerzitní informační systém VIII., Karlov 2009 Fulltextové vyhledávání v UIS Miroslav Prachař.
Dobývání znalostí z databází fulltext
Vytvoření IS pro správu místností v prostředí WWW
Optimalizace SQL dotazů
Přednáška 4 MySQL.
Webové aplikace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN
Transkript prezentace:

Ing. Jan Mittner

1. Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy pro zrychlení ZF 2

 nový plugin umožňující profiling  v konfiguraci profiler.enabled = 1  pro vypsání dát do URL ?profiler=1  vypisuje i log z databázového profileru

 náročnost jednotlivých volaných SQL dotazů lze v Zendu profilovat (=měřit) prostřednictvím podkomponenty Zend_Db_Profiler  Db Profiler je schopen monitorovat veškeré volané SQL dotazy v rámci aplikace včetně délky jejich trvání, vstupních parametrů apod.  na základě získaného profilování lze optimalizovat počet dotazů a jejich výpočetní náročnost  výstupy z profilování lze mj. publikovat prostřednictvím Firebug rozšíření Firefoxu, resp. v kombinaci s rozšířením FirePHP, které je schopno do Firebugu dodávat data z logování na serveru   4

 Zend komponenta zajišťující cachování dat s cílem optimalizace výkonu aplikace  komponenta nabízí uložení vybraných dat do cache  u cache je možné nastavit libovolnou i neomezenou trvanlivost či cache v závislosti na aktualizaci cachovaných dat ad-hoc mazat  5

 cachovat můžeme různé věci – tzv. frontendy  core - téměř libovolná data  output - výstup akce v rámci MVC  page - celou stránku  cache můžeme ukládat na různá místa – tzv. backendy  soubory  databáze  memcached  invalidace cache  vypršením expirační doby  pomocí konkrétního cache id  pomocí tagů – doporučuji ▪ ideálně pomocí observeru na dané entitě

 ORM v Zendu lze zrychlit prostřednictvím cachování metadat jednotlivých datových entit  e.metadata.caching e.metadata.caching  Zend_Db_Table_Abstract::setDefaultMetadataCache()  kromě toho lze cache využít na řadu jiných komponent, které dokáže výrazně zrychlit  pluginy Zend_Loader_PluginLoader::setIncludeFileCache();  config  Zend_Date, Zend_Locale, Zend_Translate ▪ důrazně doporučuji cache používat

 v bootstrapu se navěsí observer My_Cache na Product  obě třídy implementují příslušná rozhraní  když se jakkoliv změní objekt třídy Product, pošle všem svým observerům notifikaci  observer My_Cache si zjistí tzv. cache tagy daného produktu: např. „Product_123“, „Products“  invaliduje všechny cache záznamy s příslušnými tagy

 Zend_Cache  implementujte cachování metody count v modelu Products ▪ využijte frontend Core ▪ nejdříve s nastavenou expirační dobou ▪ následně s využitím observeru cache na modelu  implementujte cachování ve vyhledávání produktů ▪ vyzkoušejte využít frontend Core – funguje? proč ano/ne? ▪ vyzkoušejte využijte frontend Output ▪ nejdříve s nastavenou expirační dobou ▪ následně s využitím observeru cache na modelu ▪ funguje správně vyhledávání? 9

 vhodně zvolené databázové indexy pomáhají řádově snížit náročnost SELECT dotazů včetně joinování tabulek  můžete využít dotaz EXPLAIN SELECT...  pečlivě volte datové typy a jejich rozsahy jednotlivých sloupečků tabulek, při velkých objemech dat má optimalizace datových typů vliv na rychlost SELECT dotazů  v rámci složitějších případů je třeba nalézt rovnováhu mezi počtem SQL dotazů a jejich složitostí  někdy se vyplatí spíše řešit část datové vrstvy v aplikační rovině namísto složitých SQL dotazů, resp. velkého počtu dílčích dotazů  můžete využít speciálních rozšíření MySQL, např. Spatial Extension pro práci s body v rovině/prostoru  vyhýbejte se subselectům, používejte joiny  výrazně rychlejší, pokud jsou správné indexy 10

 optimalizace logické vrstvy aplikace – nástroj Xdebug je schopen poskytnout profilování celé aplikace, čili informace o každém volání metody apod., jak byla náročná na CPU, RAM atd.  optimalizace javascriptu  pomocí nástrojů jako Firebug pro Firefox či Speed Tracer pro Google Chrome je možné profilovat výkon javascriptové vrstvy  pomocí obfuskátorů je možné minimalizovat velikost javascriptových souborů  optimalizace HTTP požadavků   GZIP komprese je schopna výstupy serveru komprimovat do GZIP formátu, který si následně klient po doručení dekomprimuje – optimalizace objemu přenesených dat  dále mohou pomoci tzv. CSS sprity  více viz. 11