mysql_fetch_array() vs. mysql_fetch_object()
Sinds PHP4 kent PHP4 de functie mysql_fetch_object(). Deze is vergelijkbaar met mysql_fetch_array(), sterker nog, alleen het resultaat verschilt. Uit mysql_fetch_object() komen, verrassend, objecten en uit mysql_fetch_array() komt logischerwijs een array.
Qua snelheid zijn ze praktisch gelijk, zoals er in de documentatie op PHP.net al te lezen is:
Dit is het resultaat van de volgende code:
PHP:
Wat me wel opviel was het geheugengebruik, waar objecten in PHP bijna altijd een hogere memory usage tot gevolg hebben was het resultaat hier behoorlijk anders. Mysql_fetch_array() heeft bij bovenstaande code bijna 2MB 1.3MB (thanks EdwinG) meer nodig dan mysql_fetch_object:
Een niet geheel onbelangrijk verschil lijkt, en zeker de moeite waard om hier morgen nog wat onderzoek aan te besteden.
Update
Het vervolg: mysql_fetch_array() vs. mysql_fetch_object() (2)
Qua snelheid zijn ze praktisch gelijk, zoals er in de documentatie op PHP.net al te lezen is:
| Functie | Tijd in seconden |
| mysql_fetch_array() | 0.8682 |
| mysql_fetch_object() | 0.8504 |
Dit is het resultaat van de volgende code:
PHP:
| <?php
|
Wat me wel opviel was het geheugengebruik, waar objecten in PHP bijna altijd een hogere memory usage tot gevolg hebben was het resultaat hier behoorlijk anders. Mysql_fetch_array() heeft bij bovenstaande code bijna 2MB 1.3MB (thanks EdwinG) meer nodig dan mysql_fetch_object:
| Functie | Geheugen (KB) |
| mysql_fetch_array() | 7174.34 |
| mysql_fetch_object() | 5832.20 |
Een niet geheel onbelangrijk verschil lijkt, en zeker de moeite waard om hier morgen nog wat onderzoek aan te besteden.
Update
Het vervolg: mysql_fetch_array() vs. mysql_fetch_object() (2)
|
|
We've got a winner |
|
|
PHP performance testen |
Reacties
Het verschil is in het voobeeld 1,3 MB, niet iets wat ik zou omschrijven als 'bijna 2MB'.
Met welke PHP versie is dit? Dat is wel belangrijke informatie
En hoe zit het met het opvragen van de informatie? Ik roep maar wat maar misschien is het opvragen vanuit een object slomer?
En hoe zit het met het opvragen van de informatie? Ik roep maar wat maar misschien is het opvragen vanuit een object slomer?
@EdwinG: Hoofdrekenen is niet mijn sterkste kant. 
@DutchMega: PHP 5.2.1/win32 en PHP5.2.1/Linux. Het opvragen van de gegevens uit de objecten en uit de array's moet ik nog testen, maar ik daar had ik gisteren geen zin meer in.
@DutchMega: PHP 5.2.1/win32 en PHP5.2.1/Linux. Het opvragen van de gegevens uit de objecten en uit de array's moet ik nog testen, maar ik daar had ik gisteren geen zin meer in.
Ik denk dat de mysql_fetch_array functie meer gebruikt doordat de waardes standaard dubbel zijn opgeslagen (zowel met column nr als column name). Vraag me af wat er met het geheugen gebruik gebeurt zodra je gebruik maakt van MYSQL_ASSOC of MYSQL_NUM.