JavaScript benchmark řetězce, regulární výrazy a asociativní pole

Rozměr: px
Začít zobrazení ze stránky:

Download "JavaScript benchmark řetězce, regulární výrazy a asociativní pole"

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

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íce

1 Webový server, instalace PHP a MySQL 13

1 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íce

1. Webový server, instalace PHP a MySQL 13

1. 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íce

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - 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íce

Vyhledá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. 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íce

manažerského řízení HW a SW požadavky pro sw ATTIS

manaž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íce

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací 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íce

Testovací protokol. webový generátor PostSignum. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: Internet Explorer 9

Testovací 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íce

Využití tabulkového procesoru MS Excel

Využ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íce

SW ATTIS nástroje. HW a SW požadavky pro sw ATTIS. manažerského řízení. Verze manuálu: 3.5 Datum:

SW 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íce

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací 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íce

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

1. 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íce

Vyhledá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. 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íce

SYSTÉM ZPRACOVÁNÍ DAT FOTOVOLTAICKÉHO SYSTÉMU A METEOSTANICE

SYSTÉ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: Č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íce

DUM 06 téma: Tvorba makra pomocí VBA

DUM 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íce

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE 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íce

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

XSLT 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íce

Vstupní požadavky, doporučení a metodické pokyny

Vstupní 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íce

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test 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íce

Internetový prohlížeč-vyhledávání a ukládání dat z internetu do počítače

Internetový 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íce

Rozklad na prvočinitele. 3. prosince 2010

Rozklad 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íce

Testovací protokol. webový generátor I.CA. Windows XP Windows Vista Windows 7 Internet Explorer Mozilla Firefox Google Chrome Apple Safari Opera

Testovací 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íce

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

FAKULTA 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íce

Koncepce (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 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íce

Software602 Form Designer

Software602 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íce

EVROPSKÝ 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 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íce

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní 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íce

2) 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.

2) 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íce

Sada 1 - PHP. 03. Proměnné, konstanty

Sada 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íce

Tvorba klientských skriptů v jazyce Java Script

Tvorba 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íce

Tabulkový procesor. Základní rysy

Tabulkový 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íce

Příkazové skripty Procedurální jazyky Lua a ostatní

Pří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íce

Testovací protokol USB Token Cryptomate

Testovací 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íce

Formuláře. Internetové publikování. Formuláře - příklad

Formulář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íce

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah 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íce

Další 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.

Další 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íce

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery 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íce

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

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 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á

- 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 Ú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íce

NÁVOD NA VYPLNĚNÍ ELEKTRONICKÉ ŽÁDOSTI O DOTACI

NÁ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íce

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterač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íce

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. 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íce

SEO OPTIMALIZACE PRO VYHLEDÁVAČE JEDNODUŠE

SEO 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íce

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Ruby 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íce

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

3 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

- 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íce

Paralelní výpočty ve finančnictví

Paralelní 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íce

WSH 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 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íce

Pole a kolekce. v C#, Javě a C++

Pole 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íce

dovolují dělení velkých úloh na menší = dekompozice

dovolují 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íce

LabView jako programovací jazyk II

LabView 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íce

DINOX IP kamery řady: DDC-xxxx DDR-xxxx DDX-xxxx DDB-xxxx

DINOX 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íce

5a. 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 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íce

Standardní algoritmy vyhledávací.

Standardní 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íce

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství.

PHP. 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íce

Nový Node Monitor. 13. prosince 2008. Lukáš Turek Praha12.Net

Nový 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íce

Programové vybavení počítače

Programové 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íce

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE 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íce

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

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 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íce

3. 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 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íce

Software pro vzdálenou laboratoř

Software 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íce

Zá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 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íce

8 Třídy, objekty, metody, předávání argumentů metod

8 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íce

Základní informace a postup instalace systému IS MPP

Zá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

Ú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íce

Střední odborná škola a Střední odborné učiliště, Hořovice

Stř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íce

PHP - ú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. 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íce

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace 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íce

SimBIm uživatelská dokumentace

SimBIm 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íce

Implementač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 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íce

Projekt z předmětu Testování softwarových systémů

Projekt 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íce

Nová áplikáce etesty zá te z ove testová ní

Nová á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íce

Pro 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ší. 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íce

Algoritmizace řazení Bubble Sort

Algoritmizace ř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íce

Už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 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íce

HelpDesk. Co je HelpDesk? Komu je aplikace určena? Co vám přinese?

HelpDesk. 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íce

Instalace a konfigurace web serveru. WA1 Martin Klíma

Instalace 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íce

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyuč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íce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita 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íce

Reranking založený na metadatech

Reranking 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íce

Generování žádosti o certifikát Uživatelská příručka

Generová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íce

NSWI096 - INTERNET JavaScript

NSWI096 - 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íce

Masarykova 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 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íce

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 -

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 - 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íce

MBI - technologická realizace modelu

MBI - 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íce

Ná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:

Ná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íce

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. ú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íce

Roč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. 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íce

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PODOBÁ 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íce

MQL4 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 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íce

Maturitní projekt do IVT Pavel Doleček

Maturitní 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íce

GTL 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 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íce

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využ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íce

4a. 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 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íce

17. č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/ 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íce

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. ú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íce

InterSystems Caché Post-Relational Database

InterSystems 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