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 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 2
dnes 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
dnes 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 0
dnes 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
dnes 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
včera 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
včera 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 381 hlasů
 Komentářů: 31, poslední dnes 19:19
Rozcestník
Reklama

Dotaz: PHP - objekty využívají příliš paměti

14.4.2010 00:33 pphap
PHP - objekty využívají příliš paměti
Přečteno: 672×
Docela mě překvapilo kolik paměti si berou objekty v PHP. Zkoušel jsem vytvořit 10000 objektů z jedné třídy, která v sobě nic neobsahovala a PHP si vzalo skoro 20MB paměti. Připadá mi to docela dost a nechápu proč si to musí tolik paměti brát. Dá se tohle chování nějak ovlivnit?

Odpovědi

14.4.2010 13:52 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
Jak si to měřil?
14.4.2010 17:51 pphap
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
V PHP pomocí memory_get_usage a kontroloval jsem tu hodnotu i tím, že jsem do kódu po vytvoření objektů vložil sleep a zkontroloval to pomocí příkazu free z konzole a je to opravdu tak.
14.4.2010 19:05 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
$ php5 -v
PHP 5.2.6-1+lenny3 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 26 2009 20:09:03) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
$ echo '<?php sleep(10); ?>' | php5 & sleep 5; ps aux | grep [p]hp
[1] 11789
messa    11789  0.0  0.1 150744  8748 pts/4    S<   18:23   0:00 php5
$ echo '<?php class C {} for ($i = 0; $i < 10000; $i++) {$arr[] = new c();} sleep(10); ?>' | php5 & sleep 5; ps aux | grep [p]hp
[2] 11795
[1]-  Done                    echo '<?php sleep(10); ?>' | php5
messa    11795  0.4  0.1 156652 14284 pts/4    S<   18:23   0:00 php5
Vzalo si to 5536 kB, to vychází průměrně 567 byte na jeden objekt. Na C++ objekt by to bylo hodně, ale u vzhledem k tomu, že u PHP a podobných jazyků je objekt spíše slovníková struktura a nějaká další režie, mi to nepřijde tolik.

Pokud potřebuješ vytvářet mraky objektů, možná pro to PHP není to pravé. Nebo by možná stačilo jen zvýšit memory_limit, pokud je i těch 20 MB problém :)
14.4.2010 17:33 wike | skóre: 19 | blog: experimental
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
Záleží akú verziu PHP používaš. Verzia 5.3 priniesla garbage collector. Viac si môžeš prečítať v manuálových stránkach PHP.
14.4.2010 18:09 pphap
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
Používal jsem 5.2. Teď jsem nahodil 5.3 a nyní to dokonce využije o 0.5MB paměti víc :-) Myslím, že gc je mi k ničemu, když všechny vytvořené objekty používám.
14.4.2010 19:09 wike | skóre: 19 | blog: experimental
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
Pravdepodobne záleží od triedy, ktorú testujete. Skúsil som otestovať spotrebu pamäte s použitím triedy Foo z článku v mojom predošlom komentári. Každý objekt obsahuje len jednu premennú s hodnotou "3.1415962654". Do poľa som si ukladal všetky nové objekty a vypísal som spotrebu pamäte pomocou memory_get_usage(). Výstup vyzeral takto:
Memory usage with 0 objects : 0.31355285644531 MB 
Memory usage with 5000 objects : 2.108585357666 MB 
Memory usage with 10000 objects : 3.9348297119141 MB 
Memory usage with 15000 objects : 5.4797821044922 MB 
Memory usage with 20000 objects : 7.5872421264648 MB 
Memory usage with 25000 objects : 9.132194519043 MB 
Memory usage with 30000 objects : 10.677146911621 MB 
Memory usage with 35000 objects : 13.347118377686 MB 
Memory usage with 40000 objects : 14.892070770264 MB 
Memory usage with 45000 objects : 16.437023162842 MB 
Memory usage with 50000 objects : 17.98197555542 MB 
Memory usage with 55000 objects : 19.526927947998 MB 
Memory usage with 60000 objects : 21.071880340576 MB 
Memory usage with 65000 objects : 22.616832733154 MB 
Memory usage with 70000 objects : 26.411785125732 MB 
Memory usage with 75000 objects : 27.956737518311 MB 
Memory usage with 80000 objects : 29.501689910889 MB 
Memory usage with 85000 objects : 31.046642303467 MB 
Memory usage with 90000 objects : 32.591594696045 MB 
Memory usage with 95000 objects : 34.136547088623 MB 
Memory usage with 100000 objects : 35.681499481201 MB 

Memory peak usage : 35.682582855225 MB
14.4.2010 20:19 wike | skóre: 19 | blog: experimental
Rozbalit Rozbalit vše Re: PHP - objekty využívají příliš paměti
Doplním ešte pár informácií :
$ php -v
PHP 5.3.2 with Suhosin-Patch (cli) (built: Apr  2 2010 19:44:30) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
Obsah suboru test.php
<?php
class Foo
{
    public $var = '3.1415962654';
}

$arr = array();

for ( $i = 0; $i <= 100000; $i++ )
{
    $a = new Foo;
    if($a != null){
       $arr[] = $a;
    }

    if($i % 5000 == 0){
        echo "Memory usage with $i objects : " . memory_get_usage()/(1024*1024) . " MB \n";
    }
}

echo "\nMemory peak usage : " . memory_get_peak_usage()/(1024*1024), " MB\n";
?>

Založit nové vláknoNahoru

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

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