[oop] container en geheugen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

19/05/2014 16:12:30
Quote Anchor link
Hallo,

Kort vraagje (ik weet niet zeker of ik dit eerder heb gevraagd, maar ik kan het in ieder geval niet terugvinden).

Ik heb een container met services. Tot op heden stopte ik de configuratie van alle services (via een config-bestand) in één array (class property van de Container class). Dus één array element bevatte de configuratie-data van een service. Zeg maar dit idee:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$services['object_cacher'] => ['class' => 'FileCacher', 'path' => 'some/path'];


Ik zit nu te denken om losse service objecten te gebruiken. Eén service object bevat dan z'n eigen configuratie. Dit object voeg ik dan toe aan de class property van de Container class. Dan krijg je dus dit idee:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$services['object_cacher'] => object;

Stel nu dat ik straks 100 services heb, dan heb ik dus een class property/array met daarin 100 service-objecten. Kan ik daardoor problemen met m'n geheugen krijgen? Of is dat iets waar ik me absoluut niet druk om hoef te maken?
 
PHP hulp

PHP hulp

27/11/2024 08:22:16
 
Wouter J

Wouter J

19/05/2014 17:48:19
Quote Anchor link
Tatadadaa http://www.phphulp.nl/php/forum/topic/service-container-vraagje/89589/

Ozzie PHP:
Dan ga ik het ook maar proberen met een aparte service class. Thanks! :)
 
Ward van der Put
Moderator

Ward van der Put

19/05/2014 17:48:52
Quote Anchor link
Als ik het test met 100 services in de geschetste opzet, kom ik op een verschil van 1528 tot 3816 bytes. Dat is verwaarloosbaar.
 
Ozzie PHP

Ozzie PHP

19/05/2014 20:38:24
Quote Anchor link
@Wouter;

lol, thanks... kan daar alleen niks terugvinden over het geheugenverbruik :-s

@Ward:

Uh... ik ben niet zo goed met bytes :) maar dat is dus een verschil van 1,5 a 4 kb? Klopt dat? Als mijn "berekening" klopt dan is dat inderdaad verwaarloosbaar. Hoe heb je dat getest?
 
Wouter J

Wouter J

19/05/2014 22:16:49
Quote Anchor link
Grappig weetje, 1000 Service objecten verbruiken minder geheugen dan 1000 Service arrays: http://3v4l.org/cAfcq
 
Ozzie PHP

Ozzie PHP

19/05/2014 22:24:37
Quote Anchor link
Telt ie de usage van de eerste ronde nu niet op bij de resultaten van de 2e ronde?
 
Wouter J

Wouter J

19/05/2014 22:27:30
Quote Anchor link
Nee, want ik bekijk alleen de delta tussen het begin van de loop en het eind, niet de delta. Tevens zie je dat <5.4.0 de arrays wel minder geheugen innemen.

Om je te overtuigen, hetzelfde script in omgekeerde volgorde: http://3v4l.org/WuJQv
 
Ozzie PHP

Ozzie PHP

19/05/2014 22:32:10
Quote Anchor link
Ah ja, inderdaad... leuk om te zien! En een goede ontwikkeling ook dat objecten blijkbaar ineens minder geheugen in beslag nemen. Thanks voor het aanleveren van dit bewijs. Maakt de keuze gelijk een stuk gemakkelijker :-)

Well done!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.