JavaScript benchmark řetězce, regulární výrazy a asociativní pole
|
|
- Sabina Dušková
- před 7 lety
- Počet zobrazení:
Transkript
1 Technologie vývoje webových aplikací JavaScript benchmark řetězce, regulární výrazy a asociativní pole Matěj Outlý & Jaroslav Mlejnek Abstrakt Použití skriptovacího jazyka JavaScript na internetových stránkách je dnes už skoro samozřejmostí. Tvůrcům webů dává možnost přiblížit internetové prezentace klasické desktopové aplikaci a nezřídka kdy je JavaScriptový kód i více jak tísíci řádkový. Tento referát podává přehled o rychlosti vykonávání JavaScriptových příkazů v jednotlivých dostupných internetových prohlížečích. Konkrétně je pak zaměřen na práci s řetězci, regulárními výrazy a asociativním polem. Prezentovány jsou nejen výsledky měření, ale i popis jednotlivých testů a framework, který vypočtená data spravuje. 1 Úvod V referátu se budeme zabývat testováním implementace řetězců, regulárních výrazů a asociativních polí včetně jejich nejpoužívanějších funkcí (metod) v interpretovaném skriptovacím jazyce JavaScript v běžných internetových prohlížečích. Jsou jimi: Mozilla Firefox, Opera, Microsoft Internet Explorer, Apple Safari a Konqueror. Tomuto testování (a nejen tomuto testování) se říká benchmarking. Obecně za benchmark je považováno vykonání (proces) nějakého programu nebo sady programů za účelem zjištění výkonu testovaného subjektu. Testovaným subjektem může být např. CPU (z oblasti hardware) nebo kompilátor (z oblasti software). Za benchmark je považován také onen samotný program, pomocí nějž testujeme. Definici benchmarku můžeme ještě více zobecnit a říci, že benchmark je metoda k porovnávání výkonu různých testovaných subjektů běžících v různých prostředích. V našem případě metoda znamená porovnávání časové délky vykonávání generátorem vygenerovaného JavaScriptového kódu, 1
2 testovaným subjektem je implementace JavaScriptu v internetovém prohlížeči a prostředími jsou běžně dostupné internetové prohlížeče. Smyslem uskutečnění tohoto měření je zjistit, jak si prohlížeče poradí s objemnějším JavaScriptovým kódem (30 MB zdrojového kódu a více) a jak zvládají práci s extrémními daty. Naše testy se nesnaží o vystižení reálných úloh. 2 Testy Každý test je vygenerován zvláštním parametrizovatelným generátorem naprogramovaným v C++. Sestavený JavaScriptový kód se sestává z jediné funkce run(), viz zdrojový kód 1. // my_test.js // function run() { // kód testu... } return true; Zdroj. kód 1: kostra testu. Všechny generátory mají společnou kostru viz zdrojový kód 2. Nejprve jsou deklarovány proměnné, které budou dále v JavaScriptovém kódu použity. Poté následují dva do sebe vnořené cykly, které budeme dále označovat vnějším a vnitřním cyklem. Generátor zpravidla funguje tak, že na začátku každého vnějšího cyklu vygeneruje náhodná data, která jsou následně dokola zpracovávána vnitřním cyklem. Část zdrojového kódu uvnitř vnitřího cyklu označená opakované provádění kroků testu generuje výkonné příkazy testující danou oblast (třídění asociativních polí, vyhledávání v řetězcích atp.). Samotné výkonné příkazy jsou zpravidla ve skupinách po šesti a snaží se použít všechny funkce a JavaScriptové operátory týkající se dané oblasti. Konstanta PATTERN_LENGTH udává počet opakování výkonných příkazů testujících danou oblast resp. podoblast. Konstanta ITERATION_NUM nastavuje počet opakování celého testu. Zadefinováním či nedefinováním USING_FOR_LOOP zůstává stejná funkčnost testu, rozliší se pouze způsob rozšíření JavaScriptového kódu. V prvním případě, definováním USING_FOR_LOOP, bude test zopakován pomocí JavaScriptové smyčky 2
3 for, kód bude mít velikost jednoho testu + režie (viz 2). Nevýhodou je však, že do každého vnějšího cyklu vstupují stále stejná data (pouze jednou vygenerovaná generátorem), což má za následek větší pravděpodobnost zanesení statistické chyby do testu. Nedefinováním USING_FOR_LOOP bude výsledný kód obsahovat USING_FOR_LOOP test zřetězený za sebou + režii. Vznikne tedy test s lepšími daty, avšak mnohonásobně větší soubor, který prohlížeče musí umět správně načíst. Všechny použité testy jsou vygenerovány generátorem s definovaným USING_ FOR_LOOP kvůli prohlížeči Opera, který v základním nastavení není schopen několik desítek MB velký JavaScript načíst. Rozmezí velikostí použitých testů je od 34kB do 2,5MB. V dalším textu budeme pojmem test myslet jedno zavolání funkce run(). // Deklarace použitých JavaScriptových proměnných. o << "var ac1;" << endl; o << "var ac2;" << endl; o << "var ac3;" << endl;... #ifdef USING_FOR_LOOP o << "for (var i = 0; i < " << ITERATION_NUM << "; ++i) {" << endl; #else for (int i = 0; i < ITERATION_NUM; ++i) { #endif // Inicializace JavaScriptových proměnných // pro jednu vnější iteraci.... for (int i = 0; i < PATTERN_LENGTH; ++i) { // Opakované provádění kroků testu o << "ac3 = ac1.concat(ac2);" << endl; o << "ac3 = ac2.concat(ac1);" << endl;... } #ifdef USING_FOR_LOOP o << "}" << endl; #else } #endif Zdroj. kód 2: kostra generátoru jednoho testu. 3
4 2.1 Spojování dlouhých řetězců První test má za úkol otestovat rychlost implementace spojování textových řetězců. Délka řetezce se pohybuje řádově ve stovkách znaků a testován je zejména operátor + na objektu String, tedy operátor zřetězení a dále jeho metoda concat. Obě varianty pouze spojí dva řetězce za sebe. 2.2 Podřetězce řetězců Tento test vybírá podřetězce náhodné délky pomocí metod substring, substr a slice objektu String. Tyto metody pracují v zásadě stejně, liší se pouze parametry. Vstupní řetezec má opět délku řádově ve stovkách znaků, délka podřetezce se postupně zvětšuje. 2.3 Hledání v řetězci V tomto testu se jedná o jednoduché vyhledávání podřetězce v textu. Jsou použity metody indexof, lastindexof a match objektu String. Je asi zřejmé, že metoda indexof vrací index prvního výskytu hledaného podřetězce, metoda lastindexof naopak poslední a metoda match se chová stejně jako indexof, pokud je jí jako parametr předán obyčejný řetezec (tedy ne reguární výraz), proto je do tohoto testu také zařazena. Krátké hledané podřetězce jsou generovány náhodně, dále je pro vyhledávání použit jeden nikoli náhodný, ale o hodně delší podřetězec. Vstupní řetězec má stejnou délku jako v předchozím testu. 2.4 Validace řetězce pomocí regulárních výrazů Otestování pouhé validace podle regulárního výrazu (tedy test na shodu) je realizováno pomocí metody test objektu RegExp. Pro otestování je použito celkem 6 různých regulárních výrazů s postupně rostoucí složitostí. Generovány jsou po-stupným nabalováním složitosti s ohledem na řetězec, na kterém se bude testovat. 2.5 Nahrazení v řetězci pomocí regulární výrazů Stejně jako předchozí test používá šesti různých regulárních výrazů k otestování metody replace na objektu RegExp. 4
5 Tato metoda má za úkol nahradit ta místa, kde vstupní text matchuje s regulárním výrazem, nějakým, v našem případě náhodně vygenerovaným, řetězcem. Použité regulární výrazy jsou generovány obdobným způsobem jako v předchozím testu. 2.6 Rozdělení řetězce na podřetězce pomocí regulárních výrazů Poslední test používající regulární výrazy je zaměřen na rozdělení vstupního textu do pole podle daného regulárního výrazu. To odpovídá metodě split, opět na objektu RegExp. Regulární výrazy jsou stejné (stejně generované) jako v předchozích testech. 2.7 Hledání v poli Další skupina testů začíná pouhým otestováním vybírání prvků z asociativního pole. Jediné úskalí testu spočívá v tom, že pole obsahuje řádově tisíce prvků (dlouhých řetězců) indexované řetězcovými klíči o délce ve stovkách znaků. Testován je tedy operátor [] objektu Array. 2.8 Třídění pole Tento test je zaměřený na třídění dlouhých asociativních polí s řetězcovými klíči o délce opět ve stovkách znaků. Test se snaží po každém třídění pole opětovně rozházet např. změnou nějakého prvku za nový náhodně vygenerovaný. Testuje se tedy zejména metoda sort na objektu Array. 2.9 Konkatenace polí Konečně poslední test má za úkol pouhé spojování dlouhých asociativních polí (opět řádově v tisícovkách prvků). Testujeme tedy metodu concat objektu Array. 3 Framework Pro snadnější správu testů byl vytvořen framework zajišťující výběr testu, spuštění testu, uložení výsledků a vytvoření skriptu pro statistický software R. Framework je naprogramován ve skriptovacím jazyce PHP, v našem případě běží na webovém serveru Apache a data ukládá do databáze MySQL. Adresářová struktura: 5
6 tests/ adresář obsahující jednotlivé testy, test spojování velkých asoc. polí, test vyhledávání podle klíče v asoc. poli, test třídění velkých asoc. polí, test na shodu s regulárním výrazem, test na rozdělení podle reg. výrazu, test na nahrazení podle reg. výrazu, test spojování dlouhých řetězců, test na podřetězce a test vyhledávání v řetězcích. index.php Výchozí stránka s nastavením parametrů testu, R.php generátor R skriptů, run.php průběh výpočtu, save.php uložení vypočtených výsledků do databáze a stat.php zobrazení vypočtených dat. 3.1 Parametry testu index.php V internetovém prohlížeči je možno zvolit tyto parametry testu: typ testu automaticky generovaný seznam dostupných testů umístěných v podadresáři tests/, internetový prohlížeč framework automaticky vybere správný prohlížeč, počítač manuální výběr stroje, na kterém test probíhá, počet iterací počet opakování vybraného testu a iterovat pomocí JavaScriptového for cyklu způsob opakování vybraného testu, a to buď spuštění funkce run() v rámci vygenerovaného for cyklu a nebo několikanásobným vložením JavaScriptového skriptu volajícího funkci run() do kódu za sebe. Kliknutím na tlačítko run the test jsou parametry předány stránce run.php. 6
7 3.2 Spuštění testu (výpočet) run.php PHP skript run.php na základě získaných parametrů sestaví webovou stránku obsahující elementy <script> s odkazem na soubor s JavaScriptovým testem a voláním procedury run(), která test spouští. Navíc před samotným spuštěním každého testu funkcí run() zaznamená aktuální čas a po skončení běhu testu vypočítá z nového aktuálního času a zaznamenaného času dobu průběhu v milisekundách. Výsledky průběžně ukládá do pole. <! načtení testu ze souboru > <script type="text/javascript" src="tests/my_test.js"> </script>... <! i-tá iterace testu > <script type="text/javascript"> start = new Date(); if (!run()) alert("error."); end = new Date(); results[i] = end - start; </script>... <! sestavení GET požadavku a automatické přesměrování > <script type="text/javascript"> window.location = "save.php?results=" + results.join(";"); </script> Zdroj. kód 3: testovací stránka. Po zavolání poslední iterace testu sestaví GET požadavek s výsledky měření a proběhne automatické přesměrování na skript save.php. 3.3 Uložení výsledků měření save.php Jakmile skončí všechna měření, jejich výsledky jsou předány skriptu save.php, který je pouze uloží do databáze MySQL. 3.4 Generování skriptu pro R R.php K analýze naměřených dat je použit statistický software R. Aby skripty pro tento software nemusely být psány ručně, byl naprogramován jejich parametrizovatelný generátor. 7
8 V první fázi výpočtu jsou ze všech získaných dat vypočteny aritmetické průměry, v ostatních fázích se počítá pouze s nimi. Podporované výstupy jsou celkový přehled měření všech testů na všech prohlížečích po testech, celkový přehled měření všech testů na všech prohlížečích po prohlížečích, sečtená doba průměrů běhu všech testů po prohlížečích, sečtená doba průměrů běhu testů v jednotlivých kategoriích, přehled všech provedených testů na vybraném prohlížeči a přehled všech prohlížečů, na kterých byl vybraný test spuštěn. 4 Závěrečná statistika Bylo provedeno celkem 9 testů, každý po alespoň 10 opakováních. Testovanými prohlížeči byly Microsoft Internet Explorer 6.0, 7.0 a testovací verze 8.0, Mozilla Firefox 1.0, 1.5, 2.0 a testovací verze 3.0, Opera 7.5, 8.0, 9.2 a testovací verze 9.5, Apple Safari 3.1, Konqueror 3.5 a 4.0. Časy uváděné v grafech jsou doby běhu funkce run() v milisekundách (ms). Tato doba ale de-facto nemá nějakou vypovídající hodnotu, nemůžeme např. říci, že spojení dvou řetězců stojí 4µs. Berme proto dobu běhu funkce run() pouze jako poměrové měřítko. Benchmark proběhl na dvou strojích, každý s jinou hardwarovou výbavou a operačním systémem. Většina testů proběhla na stroji s procesorem Mobile AMD Sempron 3000+, frekvencí 1, 8GHz a operačním systémem Microsoft Windows XP. Benchmark majoritních linuxových prohlížečů proběhl na stroji s procesorem Intel Core 2 Duo 7500, frekvencí jádra 2,2GHz a s operačním systémem GNU/Linux distribuce Gentoo. 8
9 4.1 Celková statistika stroj s MS Windows Graf 4 ukazuje přehled všech prohlížečů jak dopadly v jednotlivých testech. Summary for jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 4: Celková statistika windowsového stroje. Z grafu je patrné, že prohlížeče Opera mají s JavaScriptovými regulárními výrazy vcelku problémy, zvláště pak test nahrazení podřetězce podle regulárního výrazu. Vzhledem k tomu, že v tomto testu neuspěly všechny verze tohoto internetového prohlížeče, lze vyloučit náhodnou chybu vyskytující se ve zdrojovém kódu JavaScriptového interpreteru. Na grafu je také vidět, že tvůrci Opery na regulárních výrazech stále pracují a (nepočítáme-li testovací verzi) časy běhu skriptů zkracují. Nejlépe nedopadl ani test na třídění polí u prohlížečů Konqueror, který oproti ostatním prohlížečům mnohonásobně zaostává. Protože algoritmus třídění (resp. reverze, který je také použit v tomto testu) patří mezi triviální algoritmy, usuzujeme, že zde se o chybu v interpreteru už jedná. K tomuto závěru nás také vede společné jádro WebKit prohlížeče Konqueror a Apple Safari, který v testech naopak suveréně vyhrává. 4.2 Statistika dle kategorií testů Graf 5 ukazuje součet průměrných dob přes všechny testy v daných kategoriích (řetězce, regulární výrazy a asociativní pole) a udává celkovou výkonost jednotlivých prohlížečů v těchto kategoriích. 9
10 Total summary for jbook_xp Strings RegExps Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox 1.0 Arrays Graf 5: Výkon prohlížečů v testovaných kategoriích. Jak již bylo zmíněno výše v popisu předchozí statistiky, internetový prohlížeč Opera zaostává v regulárních výrazech, Apple Safari má oproti všem prohlížečům nezanedbatelný náskok a překvapivě dobře dopadl i internetový prohlížeč Microsoft Internet Explorer. 10
11 4.3 Celkový výkon prohlížečů Data na obrázku 6 jsou získaná stejným způsobem, jako v předchozí statistice, tedy sečtěním průměrných hodnot výsledků jednotlivých testů. Tentokrát je však statistika celková, nekategorizovaná. Total summary on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 6: Celkový výkon jednotlivých prohlížečů. Nyní můžeme stanovit jakési pořadí rychlosti prohlížečů dle výkonosti: 1. Apple Safari 2. Microsoft Internet Explorer 3. Mozilla Firefox 4. Opera 5. Konqueror Konqueror by svými výkony měl zaujímat příčku těsně za prohlížečem Mozilla Firefox, avšak výsledek testu třídění polí ho bohužel dostal na poslední místo. 4.4 Celková statistika přes prohlížeče Graf 7 nabízí ještě jeden alternativní pohled na celkovou statistiku, tentokrát setříděnou dle internetových prohlížečů. 11
12 Summary for jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 7: Celkový přehled výkonů prohlížečů v jednotlivých testech. 4.5 Výsledky testů po prohlížečích Zde jsou k dispozici jednotlivé výsledky testů setříděné po prohlížečích, které ukazují, v jakých testech si jaký prohlížeč stojí. Grafy jsou bez komentáře Mozilla Firefox Firefox 1.0 on jbook_xp Graf 8: Prohlížeč Firefox
13 Firefox 1.5 on jbook_xp Graf 9: Prohlížeč Firefox 1.5. on jbook_xp Graf 10: Prohlížeč. 13
14 Firefox 3.0 on jbook_xp Graf 11: Prohlížeč Firefox 3.0, testovací verze Opera Opera 7.5 on jbook_xp Graf 12: Prohlížeč Opera
15 Opera 8.0 on jbook_xp 0e+00 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 Graf 13: Prohlížeč Opera 8.0. on jbook_xp 0e+00 1e+05 2e+05 3e+05 4e+05 Graf 14: Prohlížeč. 15
16 Opera 9.5 on jbook_xp 0e+00 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 Graf 15: Prohlížeč Opera 9.5, testovací verze Microsoft Internet Explorer IE 6.0 on jbook_xp Graf 16: Prohlížeč Microsoft Internet Explorer
17 IE 7.0 on jbook_xp Graf 17: Prohlížeč Microsoft Internet Explorer 7.0. IE 8.0 on jbook_xp Graf 18: Prohlížeč Microsoft Internet Explorer 8.0, testovací verze. 17
18 4.5.4 Apple Safari Safari 3.1 on jbook_xp Graf 19: Prohlížeč Apple Safari Konqueror Konqueror 4.0 on jbook_xp Graf 20: Prohlížeč Konqueror
19 Konqueror 4.0 on jbook_xp Graf 21: Prohlížeč Konqueror 4.0 bez testu array_sort. 4.6 Výsledky testů po testech V každém testu je velmi zřetelně vidět rychlost prohlížeče Apple Safari. Grafy jsou bez komentáře Spojování asociativních polí on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 22: Test array_concat. 19
20 4.6.2 Vyhledávání podle klíče v asoc. poli on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 23: Test array_find Třídění velkých asociativních polí on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 24: Test array_sort. 20
21 4.6.4 Nahrazení podle regulárního výrazu on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 25: Test regexp_replace Rozdělení podle regulárního výrazu on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 26: Test regexp_split. 21
22 4.6.6 Testovaní na shodu on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 27: Test regexp_test Spojování dlouhých řetězců on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 28: Test string_concat. 22
23 4.6.8 Podřetězce on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 29: Test string_substring Vyhledávání v řetězcích on jbook_xp Safari 3.1 Opera 9.5 Opera 8.0 Opera 7.5 Konqueror 4.0 IE 8.0 IE 7.0 IE 6.0 Firefox 3.0 Firefox 1.5 Firefox Graf 30: Test string_search. 4.7 Celková statistika stroj s Gentoo Linux Jak již bylo zmíněno, měření proběhlo také na počítači s instalovaným operačním systémem Gentoo Linux. Testovány byly tři majoritní prohlížeče: Mozilla Firefox 2.0, a Konqueror 3.5. Výsledky testů na tomto stroji jsou totožné s výsledky testů na stroji s Microsoft Windows (myšleno poměrově stejné, nikoliv absolutně). Dokonce prohlížeč 23
24 Summary for notemat_gentoo Konqueror 3.5 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 31: Celková statistika linuxového stroje. Konqueror ve verzi 3.5 má stejné problémy s testem na třídění velkých asociativních polí jako jeho nástupce 4.0 lze tedy vyloučit chybu implementace JavaScriptového interpreteru způsobenou portem primárně linuxového internetového prohlížeče na operační systém Microsoft Windows. 4.8 Statistika dle kategorií testů Oproti statistice 5 najdeme v grafu 32 rozdíl v rychlosti zpracování řetězců. Prohlížeč Opera je na linuxovém stroji výkonově srovnatelný s ostatními prohlížeči. Připomeňme, že prohlížeč Opera byl přibližně 2 pomalejší než Firefox a Konqueror. 24
25 Total summary for notemat_gentoo Strings Konqueror 3.5 RegExps Arrays 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 32: Výkon prohlížečů v testovaných kategoriích. 4.9 Celkový výkon prohlížečů I přesto, že Opera dosáhla lepších výsledků v testech na řetězce, výsledné pořadí se u těchto prohlížečů nezměnilo. Total summary on notemat_gentoo Konqueror 3.5 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 33: Celkový výkon jednotlivých prohlížečů. Na operačním systému Linux je pořadí prohlížečů nezměněné: 1. Mozilla Firefox 2. Opera 3. Konqueror 25
26 4.10 Celková statistika přes prohlížeče Poslední přehled provedených testů na prohlížečích: Summary for notemat_gentoo Konqueror 3.5 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 34: Celkový přehled výkonů prohlížečů v jednotlivých testech Výsledky testů po prohlížečích Zde jsou k dispozici jednotlivé výsledky testů setříděné po prohlížečích, které ukazují, v jakých testech si jaký prohlížeč stojí. Grafy jsou bez komentáře Mozilla Firefox on notemat_gentoo Graf 35: Prohlížeč. 26
27 Opera on notemat_gentoo Graf 36: Prohlížeč Konqueror Konqueror 3.5 on notemat_gentoo 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 37: Prohlížeč Konqueror Výsledky testů po testech Grafy jsou bez komentáře. 27
28 Spojování asociativních polí on notemat_gentoo Konqueror Graf 38: Test array_concat Vyhledávání podle klíče v asoc. poli on notemat_gentoo Konqueror Graf 39: Test array_find. 28
29 Třídění velkých asociativních polí on notemat_gentoo Konqueror 3.5 0e+00 2e+05 4e+05 6e+05 8e+05 Graf 40: Test array_sort Nahrazení podle regulárního výrazu on notemat_gentoo Konqueror Graf 41: Test regexp_replace. 29
30 Rozdělení podle regulárního výrazu on notemat_gentoo Konqueror Graf 42: Test regexp_split Testovaní na shodu on notemat_gentoo Konqueror Graf 43: Test regexp_test. 30
31 Spojování dlouhých řetězců on notemat_gentoo Konqueror Graf 44: Test string_concat Podřetězce on notemat_gentoo Konqueror Graf 45: Test string_substring. 31
32 Vyhledávání v řetězcích on notemat_gentoo Konqueror Graf 46: Test string_search. 5 Dnes používané benchmarky 5.1 SunSpider a Dromaeo SunSpider JavaScript Benchmark, který lze nalézt na internetové adrese je představitelem opačného způsobu testování, než byl náš benchmark. Zatímco naše testy vyžadovaly od prohlížečů maximální výkon a testovaly jejich chování v extrémních situacích, SunSpider Benchmark se snaží co nejvěrněji vystihnout realitu (reálné úlohy). Dalším rozdílem oproti našim testům je, že SunSpider Benchmark netestuje pouze vybrané oblasti JavaScriptu, ale je komplexní toto mj. vyplývá i z jeho snahy být co nejblíže realitě. Tento benchmark testuje jazyk JavaScript jako takový, nikoliv DOM. Ze SunSpider benchmarku vychází Mozillou vytvořený benchmark Dromaeo, který obsahuje podmnožinu SunSpider testů. Nalezneme ho na internetové adrese 32
33 5.2 DHTML Benchmark & Drawing Perfomance Test Tyto benchmarky pettern/performance-1.html a pettern/performance-2.html jsou zaměřeny na DOM. Rychlost (výkon prohlížeče) je zde udávána jako počet snímků za sekundu vzhledem k počtu objektů. 33
34 Reference [1] Mozilla: Dromaeo. [2] Jak psát web. [3] Měřím já, měříš ty: za JavaScript rychlejší.. [4] Microsoft support: How to set time-out period for script. [5] Opera: dhtml benchmark. pettern/performance-1.html [6] Opera: Drawing Perfomance Test. pettern/performance-2.html [7] SunSpider JavaScript Benchmark. [8] W3Schools: JavaScript Reference. 34
1. Úvod do Ajaxu 11. Jak Ajax funguje? 13
Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje
Více1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Více1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VíceMATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Vícemanažerského řízení HW a SW požadavky pro sw ATTIS
HW a SW požadavky pro sw ATTIS Verze manuálu: 3.7 Datum: 1.8.2016 ATTN Consulting s.r.o. Strana č. 1 / 5 Obsah 1. Požadavky na konfiguraci systému... 3 1.1. Systémové požadavky na server (IIS, SQL)...
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceTestovací protokol. webový generátor PostSignum. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: Internet Explorer 9
Příloha č. 4 1 Informace o testování estovaný generátor: 2 estovací prostředí estovací stroj č. 1: estovací stroj č. 2: estovací stroj č. 3: Certifikáty vydány autoritou: estovací protokol webový generátor
VíceVyužití tabulkového procesoru MS Excel
Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...
VíceSW ATTIS nástroje. HW a SW požadavky pro sw ATTIS. manažerského řízení. Verze manuálu: 3.5 Datum:
HW a SW požadavky pro sw ATTIS Verze manuálu: 3.5 Datum: 25.1.2016 ATTN Consulting s.r.o. Strana č. 1 / 5 Obsah 1. Požadavky na konfiguraci systému... 3 1.1. Systémové požadavky na server (IIS, SQL)...
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
Více1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...
Obsah 1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW... 1 1.1 Databázový server... 1 1.2 Webový server... 1 1.3 Stanice pro servisní modul... 1 1.4 Uživatelské stanice... 1 1.5 Monitorované počítače...
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
VíceSYSTÉM ZPRACOVÁNÍ DAT FOTOVOLTAICKÉHO SYSTÉMU A METEOSTANICE
Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT SYSTÉM ZPRACOVÁNÍ DAT FOTOVOLTAICKÉHO SYSTÉMU A METEOSTANICE Petr Zelenka VOŠ a SŠ Varnsdorf, p.o. středisko VOŠ
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VíceDUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
VíceINOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika
Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování
VíceXSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)
XSLT a JavaScript Autor: Petr Dvořák (http://joshis.iprofil.cz/) Úvod Dokumenty XML (můžeme rovnou říct, že narozdíl od dokumentů (X)HTML) nenesou žádnou informaci, která by prohlížeči sdělila, jakým způsobem
VíceVstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
VíceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
VíceInternetový prohlížeč-vyhledávání a ukládání dat z internetu do počítače
VY_32_INOVACE_In 6.,7.11 Internetový prohlížeč-vyhledávání a ukládání dat z internetu do počítače Anotace: V prezentaci se žák seznámí se základními typy prohlížečů. Zaměříme se na prohlížeč Internet Explorer.
VíceRozklad na prvočinitele. 3. prosince 2010
Rozklad na prvočinitele Ondřej Slavíček 3. prosince 2010 1 Obsah 1 Příručka k programu 3 1.1 funkce main()............................. 3 1.2 funkce hlavnifunkce()........................ 3 1.3 funkce
VíceTestovací protokol. webový generátor I.CA. Windows XP Windows Vista Windows 7 Internet Explorer Mozilla Firefox Google Chrome Apple Safari Opera
Příloha č. 2 1 Informace o testování estovaný generátor: 2 estovací prostředí estovací stroj č. 1: estovací stroj č. 2: estovací stroj č. 3: estovací stroj č. 4: Certifikáty vydány autoritou: estovací
VíceFAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................
VíceKoncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
VíceSoftware602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
VíceEVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceSada 1 - PHP. 03. Proměnné, konstanty
S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a
VíceTvorba klientských skriptů v jazyce Java Script
Tvorba klientských skriptů v jazyce Java Script Publikace vznikla v rámci projektu OPVK Vyškolený pedagog záruka kvalitní výuky na Střední odborné škole veterinární, mechanizační a zahradnické a Jazykové
VíceTabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
VícePříkazové skripty Procedurální jazyky Lua a ostatní
Počítačové hry Skriptování Obsah přednášky Skriptování Příkazové skripty Procedurální jazyky Lua a ostatní Literatura a odkazy http://www.lua.org/ http://www.python.org/ Dalmau. Core Techniques and Algorithms
VíceTestovací protokol USB Token Cryptomate
Testovací protokol USB Token Cryptomate 1 Úvod 1.1 Testovaný produkt Hardware: ACS CryptoMate Software: ACS Admin Tool 2.4 Datum testování: 24. 12. 2009 1.2 Konfigurace testovacího počítače Příloha č.
VíceFormuláře. Internetové publikování. Formuláře - příklad
Formuláře Internetové publikování Formuláře - příklad 1 Formuláře - použití Odeslání dat od uživatele Možnosti zpracování dat Webová aplikace na serveru (ASP, PHP) Odeslání e-mailem Lokální script Formuláře
VíceObsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
VíceDalší nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.
ESCAPE OF VIRUSES Hra Escape of viruses je psána pomocí příkazů Javascriptu a standardních příkazů HTML. Hra se spouští tlačítkem Start game. Úkolem hráče je eliminovat viry na hrací ploše kliknutím kurzoru
VícePointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
VíceDSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v
DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve
Více- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná
DOKUMENTACE K SOFTWARU - kvalitní dokumentace k SW je vyžadovaným STANDARDEM - důvody: vzrůstající složitost SW (IS) vzájemná provázanost SW (IS) ve velkých společnostech - smysl má taková dokumentace
VíceÚvod do programování 6. hodina
Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection
VíceNÁVOD NA VYPLNĚNÍ ELEKTRONICKÉ ŽÁDOSTI O DOTACI
NÁVOD NA VYPLNĚNÍ ELEKTRONICKÉ ŽÁDOSTI O DOTACI Obsah 1 Technické požadavky na klientskou stanici... 3 2 Otevření prázdné žádosti... 4 3 Vyplnění elektronické žádosti... 4 4 Uložení a načtení vyplněných
VíceIterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
VícePascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
VíceSEO OPTIMALIZACE PRO VYHLEDÁVAČE JEDNODUŠE
Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT SEO OPTIMALIZACE PRO VYHLEDÁVAČE JEDNODUŠE Adama Kořenek Úvod Střední průmyslová škola elektrotechnická V Úžlabině
VíceRuby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková
Ruby on Rails Bc. Tomáš Juřík Bc. Bára Huňková Co nás dnes čeká? Ruby (programovací jazyk) Ruby on Rails (webový framework) Praktická ukázka Ruby (programovací jazyk) Ruby (programovací jazyk) Skriptovací
Více3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY
3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3.1 Tenký a tlustý klient Klientské aplikace nad XML dokumenty v prostředí internetu se dají rozdělit na dvě skupiny: tenký klient a tlustý klient.
Více- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
VíceParalelní výpočty ve finančnictví
Paralelní výpočty ve finančnictví Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz Výpočetně náročné úlohy distribuované úlohy mnoho relativně nezávislých úloh snížení zatížení klientské pracovní stanice
VíceWSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007
WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové
VícePole a kolekce. v C#, Javě a C++
Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java
Vícedovolují dělení velkých úloh na menší = dekompozice
Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VíceLabView jako programovací jazyk II
LabView jako programovací jazyk II - Popis jednotlivých funkcí palety Function II.část - Funkce Numeric, Array, Cluster Ing. Martin Bušek, Ph.D. Práce s daty typu NUMERIC Numerické funkce obsahuje funkce
VíceDINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx
DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx Rychlá uživatelská příručka Obsah Rychlá uživatelská příručka... 1 1. Systémové požadavky... 3 2. Připojení do sítě... 4 3. Přístup pomocí webového
Více5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
VíceStandardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
VícePHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství.
}else{ { if($b >$ c){ echo $max=$b; // vypí }else{ echo $max=$c; // vypí?> cas se }e B : se{ echo B ; default: ($b>$c){ echo C ; } $max=$b; }else{ $max=$c; PHP nejen pro začátečníky k;?> $c; echo { Martin
VíceNový Node Monitor. 13. prosince 2008. Lukáš Turek Praha12.Net
Nový Node Monitor 13. prosince 2008 Lukáš Turek Praha12.Net Nový Node Monitor http://mapa.praha12.net 2 O čem to bude Proč je potřeba nová mapa Jak je implementována Další plány Integrace s IS sítí 3 Proč?
VíceProgramové vybavení počítače
Programové vybavení počítače Číslo projektu Název školy Předmět CZ.1.07/1.5.00/34.0425 INTEGROVANÁ STŘEDNÍ ŠKOLA TECHNICKÁ BENEŠOV Černoleská 1997, 256 01 Benešov IKT Tematický okruh Téma Počítač Programové
VíceALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
VícePodrobný postup pro vyplnění, odeslání a stažení žádosti o poskytnutí dotace prostřednictvím veřejnoprávní smlouvy v elektronickém systému dle
Podrobný postup pro vyplnění, odeslání a stažení žádosti o poskytnutí dotace prostřednictvím veřejnoprávní smlouvy v elektronickém systému dle Programu Výměna zdrojů tepla na pevná paliva v rodinných domech
Více3. HODINA. Prohlížeče Druhy prohlížečů Přehled funkcí. 19.10.2009 Bc. Tomáš Otruba, Informatika 7. třída 1
3. HODINA Prohlížeče Druhy prohlížečů Přehled funkcí 19.10.2009 Bc. Tomáš Otruba, Informatika 7. třída 1 Opakování sítě Sítě dělíme na LAN a WAN (dle rozlohy) V síti můžeme nalézt aktivní a pasivní prvky
VíceSoftware pro vzdálenou laboratoř
Software pro vzdálenou laboratoř Autor: Vladimír Hamada, Petr Sadovský Typ: Software Rok: 2012 Samostatnou část vzdálených laboratoří tvoří programové vybavené, které je oživuje HW část vzdáleného experimentu
VíceZáklady programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceZákladní informace a postup instalace systému IS MPP
Základní informace a postup instalace systému IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Základní informace a
VíceÚvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11
Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového
VíceStřední odborná škola a Střední odborné učiliště, Hořovice
Kód DUM : VY_32_INOVACE_DYN.1.17 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 17 PHP- komplexní úloha Výpočet obsahu trojúhelníku pomocí Heronova vzorce DUM prohloubí dovednosti žáků v postupu
VícePHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.
PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceSimBIm uživatelská dokumentace
SimBIm uživatelská dokumentace SimBIm (zkratka pro Similarity Between Images) je webová aplikace určená pro sběr uživatelských hodnocení podobnosti mezi obrázky. Tyto nasbíraná hodnocení jsou pak většinou
VíceImplementační manuál aplikace Essox Lite pro programátora/webmastera e-shopu
Implementační manuál aplikace Essox Lite pro programátora/webmastera e-shopu Obchodní a technická podpora ESSOX: Marek Ťoupalík, tel: 724366204, e-mail: marek.toupalik@essox.cz Obsah Úvod... 2 Implementace...
VíceProjekt z předmětu Testování softwarových systémů
doc068, FEI 2008 Tvorba informačních systémů Projekt z předmětu Téma: Otestování webové aplikace pro správu a generátoru RSS čteček VŠB-TU Ostrava:Fakulta Elektrotechniky a informatiky říjen 2010 Martin
VíceNová áplikáce etesty zá te z ove testová ní
Nová áplikáce etesty zá te z ove testová ní Verze 0.4 Datum aktualizace 28. 11. 2014 1 Obsah 1 Úvod... 2 1.1 Podpora - kontakty... 2 1.2 Zdroje... 2 1.3 Zkratky... 2 2 Předpoklady pro testování... 3 2.1
VícePro využití aktivního odkazu (modrý a podtržený) použijte klávesu Ctrl + kliknutí myší.
Pro využití aktivního odkazu (modrý a podtržený) použijte klávesu Ctrl + kliknutí myší. Při odesílání registrací či hlášení do ISPOP můžete narazit na problémy, které mohou zabraňovat odeslání dokumentů
VíceAlgoritmizace řazení Bubble Sort
Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,
VíceUživatelská příručka pro práci s Portálem VZP. Test kompatibility nastavení prohlížeče
Uživatelská příručka pro práci s Portálem VZP Test kompatibility nastavení prohlížeče Obsah 1. Podporované operační systémy a prohlížeče... 3 1.1 Seznam podporovaných operačních systémů... 3 1.2 Seznam
VíceHelpDesk. Co je HelpDesk? Komu je aplikace určena? Co vám přinese?
Aktivity Správce IT HelpDesk HelpDesk Co je HelpDesk? HelpDesk je uživatelsky vstřícná webová aplikace, která výrazně usnadňuje firemní komunikaci a plánování úkolů k řešení. Svou přehledností umožňuje
VíceInstalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
VíceUniversita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce
Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se
VíceReranking založený na metadatech
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1
VíceGenerování žádosti o certifikát Uživatelská příručka
Generování žádosti o certifikát Uživatelská příručka První certifikační autorita, a.s. Verze 1.0 Obsah 1. Úvod... 3 2. Požadavky na software... 3 3. Kontrola softwarového vybavení... 4 4. Vyplnění údajů
VíceNSWI096 - INTERNET JavaScript
NSWI096 - INTERNET JavaScript Mgr. Petr Lasák JAVASCRIPT JAK SE DNES POUŽÍVÁ Skriptovací (interpretovaný) jazyk Umožňuje interaktivitu Použití: Dialogy Kontrola dat ve formulářích Změny v (X)HTML dokumentu
VíceMasarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
VícePříkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
VíceMBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
VíceNázev předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:
Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceRočníkový projekt DYNAMICKÉ HTML. Projektová dokumentace. Jan Ehrlich, Petr Marek, Tomáš Marván, Martin Paľo. Vedoucí projektu: RNDr.
Ročníkový projekt DYNAMICKÉ HTML Projektová dokumentace Jan Ehrlich, Petr Marek, Tomáš Marván, Martin Paľo Vedoucí projektu: RNDr. Vladimír Kuthan 1 Obsah 1. Úvod...3 2. Zadání projektu...4 2.0.1. Projekt
VícePODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2
PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C
VíceMQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1
MQL4 COURSE By Coders guru www.forex-tsd.com -5 Smyčky & Rozhodnutí Part 1 Vítejte v páté lekci mého kurzu MQL4. Předchozí lekci si můžete stáhnout z tohoto odkazu: http://forex-tsd.com /attachment.php?attachmentid=399
VíceMaturitní projekt do IVT Pavel Doleček
Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování
VíceGTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
VíceVyužití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Více4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty
Více17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/
17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru
Více2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
VíceInterSystems Caché Post-Relational Database
InterSystems Caché Post-Relational Database Martin Holoubek xholoub@fi.muni.cz Úvod InterSystems byla založena shodou okolností ve stejném roce jako její největší konkurent Oracle 1978 Caché je velmi vyspělý
Více