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. :wink:

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.