Seite 1 von 2
Größe eines Array in Bytes
Verfasst: 02.10.2006 18:33
von Gumfuzi
Hallo Leute,
wie kann ich am einfachsten die Größe eines Arrays herausfinden - also nicht die Anzahl der darin enthaltenen Einträge (geht ja mit "count()"), sondern die Summe aller Zeichen in dem Array (rekursiv) - oder eben die größe in Bytes.
Hoffe, ich habe das verständlich erklärt.
Vielen Dank für eure Tipps!
*edit*
mit dem Code erhalte ich schonmal die Felderanzahl:
Code: Alles auswählen
echo mysql_num_rows($result) * mysql_num_fields($result);
(Zeilen * Spalten)
nur die Bytegröße scheint nicht machbar zu sein...

Verfasst: 02.10.2006 19:57
von Pyramide
[php:is_array]
[php:strlen]
Verfasst: 02.10.2006 20:14
von Gumfuzi
Hallo Pyramide!
danke für den Link. Ich tippe mal, daß Du das Posting meintest:
http://de.php.net/manual/de/function.strlen.php#47769
Also ohne einer Schleife geht das nicht? Ich meine, mit einem einzigen, "schnelleren" Befehl also eine php-interne Funktion?
Verfasst: 03.10.2006 01:00
von S2B
Meistens wird bei php.net auf solche Funktionen aufmerksam gemacht, wenn jemand eine bereits in php integrierte Funktion postet, also: Eher nein.

Verfasst: 03.10.2006 16:08
von Gumfuzi
OK, danke!!!
Verfasst: 03.10.2006 16:17
von Olli Oberhausen
Was ist denn mit strlen(serialize($array)) ?
Ist zwar nur ein anhaltswert, aber kommt durch indexe, typen und einzellänge ziemlich nah an die Gesamtgröße. Dafür ist es aber schnell.
Gruß, Olli
Verfasst: 03.10.2006 16:45
von Gumfuzi
Habe eben entdeckt, daß selbst wenn ich die Größe rausfinde, diese nicht wirklich was mit dem Speicherverbrauch der SQL-Abfrage zu tun hat, also ist das Thema für mich hinfällig
Wenn ich aber die Spalten mit den Reihen multipliziere, dann ist das wenigstens ein grober Anhaltspunkt, wenn man spezielle tabellen berücksichtigt wie zB. post_table. - oder?
Verfasst: 03.10.2006 16:54
von Pyramide
Was genau willst du eigentlich erreichen?
Verfasst: 03.10.2006 17:02
von Gumfuzi
ich möchte herausfinden, wieviel RAM eine SQL-Abfrage am Server braucht, da der Server bei manchen SQL-Abfragen den RAM auf die Platte auslegern muss.
(ist aber ein managed Server)
*edit*
würde eben gerne in der mysql.php eine Berechnung einbauen, solange diese nicht zu aufwändig ist und damit das Forum lahmen würde - diese wird dann im Footer pro Abfrage angezeigt (mit fehlen nur mehr die Byte-Werte)
Verfasst: 03.10.2006 17:18
von cYbercOsmOnauT
Er will scheinbar ausrechnen wieviel Speicher in der DB verbraucht wird.