abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:55 | Nová verze

    Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.

    Ladislav Hagara | Komentářů: 0
    včera 23:55 | Nová verze

    Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…

    Ladislav Hagara | Komentářů: 13
    včera 18:11 | Nová verze

    Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 1
    včera 04:55 | Nová verze

    Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.

    Ladislav Hagara | Komentářů: 7
    včera 04:33 | Zajímavý projekt

    Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,

    … více »
    NUKE GAZA! 🎆 | Komentářů: 36
    16.3. 14:22 | IT novinky

    Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.

    Ladislav Hagara | Komentářů: 11
    16.3. 04:22 | Nová verze

    SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 7
    16.3. 03:11 | Zajímavý projekt

    Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační

    … více »
    NUKE GAZA! 🎆 | Komentářů: 9
    15.3. 15:33 | Humor

    PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují

    … více »
    NUKE GAZA! 🎆 | Komentářů: 4
    15.3. 14:33 | Nová verze Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1100 hlasů
     Komentářů: 27, poslední včera 19:26
    Rozcestník

    Benchmark v PHP fopen, file_get_contents, require ...

    10.11.2012 17:41 | Přečteno: 1314× | Žumpa | poslední úprava: 12.11.2012 00:50

    Je to taká rýchlovka, robil som to pre seba. Možno sa to niekomu hodí, tak to sem dávam.

    Predmetom testu je:
    Načítať riadky do premenných. Vždy ide o šesť riadkov do premenných. Zaujímalo ma aký rozdiel je načítať 2 riadky z 3 súborov a 6 riadkov z jedného súboru. Pridal som aj test pomocou require.

    Test prebieha:
    Načítanie 3 súborov s 2 riadkami pomocou fopen
    Načítanie 1 súboru s 6 riadkami pomocou fopen
    Načítanie 1 súboru s 6 pomocou file_get_contents
    Vloženie PHP kódu s 6 premennými pomocou require
    Vloženie PHP kódu s 6 premennými pomocou require_once

    Výsledok require_once je samozrejme irelevantný, pretože pripojí PHP súbor len raz, ale aj tak beží v slučke so 100000 opakovaniami.

    Každý test má 100000 opakovaní a celé sa to opakuje 3krát

    Tu je kód
    <?php
    // ##########################################################################
    // Benchmark fopen, file_get_contents, require, require_once
    // Author Mario Chorvath - Bedna, License GPLv3+: GNU GPL version 3 or later
    // ##########################################################################
    // 3 reps
    for ($r = 1; $r <= 3; $r++) {
    	echo $r.'. test
    '; // Number of repetitions $loop = 100000; // Open 3 files with 2 lines $time = microtime(true); for ($i = 0; $i < $loop; $i++) { $handle = fopen('2_1.txt', r); $line = fgets($handle); $line = fgets($handle); fclose($handle); $handle = fopen('2_2.txt', r); $line = fgets($handle); $line = fgets($handle); fclose($handle); $handle = fopen('2_3.txt', r); $line = fgets($handle); $line = fgets($handle); fclose($handle); } echo 'Open 3 files with 2 lines '; echo microtime(true)-$time.'s
    '; // Open 1 file with 6 lines $time = microtime(true); for ($i = 0; $i < $loop; $i++) { $handle = fopen('6.txt', r); $line = fgets($handle); $line = fgets($handle); $line = fgets($handle); $line = fgets($handle); $line = fgets($handle); $line = fgets($handle); fclose($handle); } echo 'Open 1 file with 6 lines '; echo microtime(true)-$time.'s
    '; // Open 1 file with 6 lines (file_get_contents) $time = microtime(true); for ($i = 0; $i < $loop; $i++) { $content_file = file_get_contents('6.txt', false); $strings = explode("\n", $content_file); // Store lines in the array } echo 'Open 1 file with 6 lines (file_get_contents) '; echo microtime(true)-$time.'s
    '; // Insert php file with 6 lines (require) $time = microtime(true); for ($i = 0; $i < $loop; $i++) { require ('6.php'); } echo 'Insert php file with 6 lines (require) '; echo microtime(true)-$time.'s
    '; // Insert php file with 6 lines (require_once) $time = microtime(true); for ($i = 0; $i < $loop; $i++) { require_once ('6.php'); } echo 'Insert php file with 6 lines (require_once) '; echo microtime(true)-$time.'s
    '; } ?>

    Výsledok testu:
    1. test
    Open 3 files with 2 lines 2.2364869117737s
    Open 1 file with 6 lines 0.85146999359131s
    Open 1 file with 6 lines (file_get_contents) 0.95627999305725s
    Insert php file with 6 lines (require) 2.1108641624451s
    Insert php file with 6 lines (require_once) 0.12839698791504s
    2. test
    Open 3 files with 2 lines 2.2577669620514s
    Open 1 file with 6 lines 0.85908102989197s
    Open 1 file with 6 lines (file_get_contents) 1.0589778423309s
    Insert php file with 6 lines (require) 2.1393258571625s
    Insert php file with 6 lines (require_once) 0.12791395187378s
    3. test
    Open 3 files with 2 lines 2.3164110183716s
    Open 1 file with 6 lines 0.87628293037415s
    Open 1 file with 6 lines (file_get_contents) 1.0660879611969s
    Insert php file with 6 lines (require) 2.1195430755615s
    Insert php file with 6 lines (require_once) 0.12526202201843s

    Možno to niekomu pomôže keď sa bude rozhodovať údaje vložiť do jedného, alebo viacerých súborov.

    Testovacie súbory hodím do komentára.        

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Bedňa avatar 10.11.2012 17:42 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Příloha:
    Testovacie súbori
    KERNEL ULTRAS video channel >>>
    xkucf03 avatar 10.11.2012 21:43 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Možno to niekomu pomôže keď sa bude rozhodovať údaje vložiť do jedného, alebo viacerých súborov.
    Otevírání/zavírání souboru je relativně drahá operace. Ale je otázka, jestli to člověk potřebuje dělat 100 000× a jestli se to nějak reálně projeví. Často je vhodné si načíst data jen jednou do RAM (při startu aplikace) a pak je pokaždé (třeba s každým HTTP) požadavkem číst odtamtud – z proměnné v rámci jednoho procesu. Jenže tohle jde bohužel v PHP špatně nebo spíš vůbec.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bedňa avatar 10.11.2012 21:55 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Ja som riešil práve tento konkrétny problém, či sa oplatí prerobiť skript a s tým všetky súvisiace veci a uložiť to do jedného súboru. Benchmark ukázal že áno. Teda väčšinou to človek nepotrebuje 10.0000krát, ale pri veľkej záťaži sa to môže stať.
    KERNEL ULTRAS video channel >>>
    edois avatar 11.11.2012 02:08 edois
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Při velké zátěži je blbost použít PHP ;) A neargumentujte mi Facebookem, ti už stejně v podstatě PHP nepoužívají
    Bedňa avatar 11.11.2012 16:29 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    A čo je lepšie použiť?
    KERNEL ULTRAS video channel >>>
    10.11.2012 23:19 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Jenže tohle jde bohužel v PHP špatně nebo spíš vůbec.
    Ale no tak...
    We lived, we danced, we raced, we run, from the oblivion to come, Dressed for the last dance of a hundred thousand suns.
    Bedňa avatar 10.11.2012 23:43 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Jasne že PHP používa moderné metódy čo veľa ľudí neznalosťou PHP vyčíta, ale skôr sa prikláňam štandatným vytunením serveru cez nastavenia Apacha atď.
    KERNEL ULTRAS video channel >>>
    edois avatar 11.11.2012 02:09 edois
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Daleko lepší vytunění serveru je se Apache zbavit ;)
    Bedňa avatar 11.11.2012 16:31 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Žiadne riešenie nieje univerzálne, alebo také poznáš?
    KERNEL ULTRAS video channel >>>
    Josef Kufner avatar 11.11.2012 21:40 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    Přesně tak. Apache je zaměřen na univerzálnost, nikoliv na výkon. Ale pokud někdo potřebuje vysoký výkon, tak nepotřebuje univerzálnost. Pak přijdou ke slovu lighttpd a podobné.
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 11.11.2012 00:03 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    O memcached vím, ale to není v rámci téhož procesu, ne? Místo otevírání souboru musíš otevřít TCP spojení, byť na localhost.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Jiří Němec avatar 11.11.2012 08:13 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    V rámci procesu je pro to podpora v APC, byla myslím i v eacceleratoru, z toho zmizela a nejspíš to najdete i v dalších PHP cache a akcelerátorech. Jelikož se má APC stát standardní součástí PHP, tak je myslím poměrně bezpečné to začít používat, hlavně pokud si provozujete vlastní server.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    xkucf03 avatar 11.11.2012 21:41 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Benchmark v PHP fopen, file_get_contents, require ...
    A fungují tam i persistentní plnohodnotné objekty? Nebo je to jen cache klíč/hodnota? Jak se tam definuje rozsah „aplikace“? Je tam nějaká analogie javovského .war/.ear archívu, který se nasazuje na aplikační server?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    xkucf03 avatar 11.11.2012 00:11 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše PHP vs. Java EE
    P.S. To, o čem jsem psal, funguje např. v Javě EE. I když použiješ tak primitivní věc, jako jsou servlety – i bez nějakých frameworků – při inicializaci servletu (zjednodušeně: při startu serveru) si můžeš načíst různé věci (konfiguraci, číselníky, nějaká data) a uložit je do proměnných – a potom při přicházejících HTTP požadavcích si je můžeš číst* – a čteš je v rámci téhož procesu, z proměnné v RAM a jako objekty – tzn. není potřeba žádná komunikace po soketu a parsování nějakého serializačního formátu.

    *) případně i zapisovat, když si dáš pozor na synchronizaci…
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    11.11.2012 01:56 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: PHP vs. Java EE
    Jasně, jenže v Javě tohle řeší aplikační server. V PHP běžícím jako CGI si to představit nedokážu. Mohlo by to fungovat jako FastCGI nebo modul do apache (tam by se to IMO neobešlo bez úprav webserveru). A s J2EE jsem měl tu "čest" semestr dělat - raději PHP, do kterého si formou různých modulů nebo externích démonů (viz zmiňovaný memcached) doplním co potřebuji, než abych dělal v tom neskutečném molochu, jakým Java je.
    We lived, we danced, we raced, we run, from the oblivion to come, Dressed for the last dance of a hundred thousand suns.
    mirec avatar 11.11.2012 21:31 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: PHP vs. Java EE
    Existujú aj iné cesty, ja napr. píšem weby v pythone. Ale s javou vo všeobecnosti na serveri tiež nemám problém.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    xkucf03 avatar 11.11.2012 21:36 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: PHP vs. Java EE
    do kterého si formou různých modulů nebo externích démonů (viz zmiňovaný memcached) doplním co potřebuji, než abych dělal v tom neskutečném molochu, jakým Java je.
    V Javě si zase napíšeš jednu třídu, která implementuje nějaké rozhraní nebo dědí abstraktního předka, případně přidáš nějakou tu anotaci… přijde mi to jednodušší než externí démoni a moduly do webserveru… Resp. takový ten klasický LAMP (alternativně Nginx a PostgreSQL) a standardní moduly, to je fajn a jednoduché, ale když potřebuješ doprogramovat nějakou vlastní specialitu, na to mi přijde jednodušší ta Java.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.