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í
×
včera 09:55 | Nová verze

Byl vydán Debian 8.11, tj. jedenáctá a současně poslední opravná verze Debianu 8 s kódovým názvem Jessie. Uživatelům je doporučen přechod na Debian 9 Stretch nebo využít LTS (Debian Long Term Support). LTS podpora Debianu 8 je plánována do 30. června 2020. LTS podpora Debianu 7 Wheezy skončila 31. května 2018.

Ladislav Hagara | Komentářů: 0
včera 09:11 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, klesla pod 6 000 dolarů. Před půl rokem byla hodnota Bitcoinu téměř 20 000 dolarů.

Ladislav Hagara | Komentářů: 24
23.6. 12:33 | Zajímavý projekt

Kernel.org představil lore.kernel.org, tj. archiv diskusního listu vývojářů linuxového jádra LKML (Linux Kernel Mailing List) s řadou zajímavých funkcí. Archiv běží na softwaru Public Inbox.

Ladislav Hagara | Komentářů: 0
23.6. 10:55 | Nová verze

Po devíti měsících vývoje od vydání verze 10.0 byla vydána verze 11.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 2
22.6. 20:44 | Nová verze

Po více než 3 měsících vývoje od vydání verze 238 oznámil Lennart Poettering vydání verze 239 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 43
22.6. 15:00 | Nová verze

Bylo oznámeno vydání nové stabilní verze 1.28 a beta verze 1.29 open source textového editoru Atom (Wikipedie). Přehled novinek i s náhledy v příspěvku na blogu. Podrobnosti v poznámkách k vydání. Atom 1.28 je postaven na Electronu 2.0.

Ladislav Hagara | Komentářů: 2
22.6. 14:00 | Nová verze

Byla vydána nová verze 2.3.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy na PIXLS.US.

Ladislav Hagara | Komentářů: 0
22.6. 13:00 | Komunita

Akční RPG hra Shadowrun Returns Deluxe, kterou lze hrát i na Linuxu je nyní zdarma na Humble Bundle. Hra vyšla díky kampani na Kickstarteru v roce 2013.

tajny_007 | Komentářů: 0
22.6. 01:00 | Nová verze

Byla vydána verze 1.27 programovacího jazyka Rust (Wikipedie). Z novinek je nutno zmínit podporu SIMD (Single Instruction Multiple Data). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 7
21.6. 16:22 | IT novinky

CEO Intelu Brian Krzanich rezignoval (tisková zpráva). Oficiálním důvodem je "vztah na pracovišti". S okamžitou platností se dočasným CEO stal Robert Swan.

Ladislav Hagara | Komentářů: 41
Jak čtete delší texty z webových stránek?
 (78%)
 (21%)
 (4%)
 (7%)
 (2%)
 (11%)
Celkem 256 hlasů
 Komentářů: 39, poslední 21.6. 17:44
    Rozcestník

    Benchmark v PHP fopen, file_get_contents, require ...

    10.11.2012 17:41 | Přečteno: 1007× | Ž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: 46 | 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-Výuka.cz, Nekuřák.net
    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...
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    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: 68
    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: 46 | 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-Výuka.cz, Nekuřák.net
    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: 46 | 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-Výuka.cz, Nekuřák.net
    xkucf03 avatar 11.11.2012 00:11 xkucf03 | skóre: 46 | 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-Výuka.cz, Nekuřák.net
    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.
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    mirec avatar 11.11.2012 21:31 mirec | skóre: 31 | 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: 46 | 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-Výuka.cz, Nekuřák.net

    Založit nové vláknoNahoru

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