phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?RE:_=5Bphp=5D_AW:_=5Bphp=5D_Re:_=5Bphp=5D_OT=3F:_Des?= =?iso-8859-1?Q?ignr=E4tsel?=

[php] RE: [php] AW: [php] Re: [php] OT?: Des ignrätsel

Juri.Smarschevski php_(at)_phpcenter.de
Thu, 22 Mar 2001 17:08:27 +0100


> -----Original Message-----
> From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of
> Arash Yalpani
> Sent: Thursday, March 22, 2001 3:20 PM
> To: 'php_(at)_phpcenter.de'
> Subject: [php] AW: [php] Re: [php] OT?: Designrätsel
>
> hi,
Hi Arash,

> > Falls es man mit Java
> > realisieren
> > wuerde, haette man sagen koennen, ok, dieses Array wird eim
> > mal erstellt
> > und befindet sich im Speicher, alle die es brauchen, hollen's einfach.
> > Aber mit PHP ist so ein Szenario nicht einfach realisierbar wenn
> > ueberhaupt.
>
> Wie sähe es denn mit Shared Memory aus? Könnte man so etwas nicht
> dort auslagern?

Theoretisch ja, praktisch kann nix sagen - keine Erfahrung in
diesem Bereich.

> Und überhaupt: Auf jeder aufgerufenen Seite ein
> Array mit 500 Einträgen a ca. 100-200 Byte zu füttern kann doch
> nicht so viele Ressourcen fressen oder vertue ich mich da?

Jain, was ein Array mit 500 Entraegen im Speicher belegt, weiss
ich nicht(IMHO wesentlich mehr als 200 Bytes), aber um dieses
Array zu erstellen braucht man (wenigstens meine Funktionen)
relativ viel Zeit, weil das ganze Zeug mit GET-Parametern
(Node auf Ebene 4 wurde aufgeklappt, welche Vater-Nodes muessen
mitaufgeklappt werden, etc.) auch berechnet wird.

Ganz allgemein, wie koennte diese Vorgehensweise aussehen (20
Nodes anzeigen)?
1. Alle 500 aus DB holen, Array erstellen. (Loop Nr 1 mit 500)
2. Array bearbeiten (min. 1 Loop mit 500 und mit rekursiven Aufrufen)
3. Array ausgeben (noch 1 Loop, allerdings nicht mit 500,
sondern mit mehreren if's fuer notwendige Anzeige)

Koennte natuerlich bisschen anders sein, aber vom groben Prinzip ist
diese Beschreibung korrekt.

Also, bestenfalls haben wir 2 Schleifen, die das gesamte Array
durchgehen und jede Menge if's dabei. Haetten wir anstatt 500 nur
20 geholt, dann wuerde das Ganze wesentlich besser aussehen.
Ich weiss nicht, fuer mich ist diese Frage ganz eindeutig gegessen -
die ganze Logik soll auf SQL-Ebene stattfinden, wie viele Seiten dann
letzendlich und tatsaechlich zur Anzeige zurueckgeliefert werden
muessen.
Ausser man kriegt Shared Memory Story zum Laufen.


Gruss,
Juri



php::bar PHP Wiki   -   Listenarchive