php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.12.2006, 12:50  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard Gibt php den Speicher nach Abschluss d. Funkt. autom. frei?

Hi, (sry für den Titel, musste kürzen) habe eine einfach Frage. Wenn ich eine Funktion ausführe z.B. $_obj->bearbeite_xyz() und dort werden relativ große Mengen an Daten verarbeitet (z.B. ein großer Array) muß ich am Ende der Funktion "bearbeite_xyz" unset($array) schreiben damit dieser wieder aufgelöst wird, oder spielt das keine Rolle da dieser nur in der Funktion besteht und nach Abschluss automatisch freigegeben wird?

Thx & Gruß mAy
mAy^daY ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.12.2006, 13:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wenn die Variablen nur in diesem Namespace existieren und der Namespace verfällt (Funktion beendet), werden die Variablen dieses Namespaces automatisch gelöscht und der Speicher freigegeben.
Zergling-new ist offline  
Alt 01.12.2006, 13:25  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Ok und noch eine andere Frage, wenn eine Funktion einen Array zurückgibt, wird dann der Rückgabe-Array der Funktion kopiert und außerhalb des Namespaces der Funktion neu angelegt oder bekommt man nur die Adresse zum Array zurück und dieser existiert einfach weiterhin?
mAy^daY ist offline  
Alt 01.12.2006, 13:30  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

So viel ich weiß wird eine "neue" Variable in der normalen Umgebung erstellt, allerdings wird die Variable in der Funktion ja sofort gelöscht bzw. der Speicher freigegeben.

Wenn du das nicht möchtest schau dir mal folgendes an: Manual
Den Teil wo die Variable als Referenz übergeben wird. Da haste dann dein Array und dieses wird durch die Funktion manipuliert, so wird kein neuer Speicher durch die Funktion verbraucht.

Frage: Wofür brauchst du dass so genau? Was für Dinge willst du bitte anstellen wo du sooo krass auf die Speicherbelegung achten musst?
Flor1an ist gerade online  
Alt 01.12.2006, 14:01  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Danke für die Antworten.

Zitat:
Zitat von RaZoR
Frage: Wofür brauchst du dass so genau? Was für Dinge willst du bitte anstellen wo du sooo krass auf die Speicherbelegung achten musst?
Eigentlich hab ich nix bestimmtes vor, aber ist ganz gut zu wissen wie etwas funktioniert.


Macht es eigentlich Sinn in PHP mit Zeigern zu arbeiten? Man würde sich ja etwas Performance einsparen, was aber wohl nur bei hoher Auslastung zu spüren wäre.

Oder eben auf einem System auf dem sehr wenig Ressourcen zur Verfügung stehen (z.B. ein Taschenrechner)
mAy^daY ist offline  
Alt 01.12.2006, 14:17  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Naja da du normalerweise in PHP kaum Daten bearbeitest bzw. nur sehr geringe Mengen und diese eigentlich nicht über ein paar kb kommen denke ich braucht man weniger auf soetwas achten. Klar sollte man es nicht unnötig ausreizen, aber jetzt extra alles auslegen um möglichst wenig Speicher zu belegen ist meiner Meinung nach nicht nötig. Da sollte lieber an so Dingen optimiert werden wie DB-Abfragen, Cachen etc.

Willst du PHP auf nem Taschenrechner laufen lassen? Wäre schon interessant nen Taschenrechner mit eigenem Webserver :P
Flor1an ist gerade online  
Alt 01.12.2006, 14:31  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Zitat:
Zitat von RaZoR
Willst du PHP auf nem Taschenrechner laufen lassen? Wäre schon interessant nen Taschenrechner mit eigenem Webserver :P
Naja, der Webserver ist nicht das Problem, PHP zum laufen zu bekommen ist schon ehr die Herausforderung...
mAy^daY ist offline  
Alt 01.12.2006, 14:40  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Ich glaub aber kaum dass du den nen Webserver auf nen Taschenrechner bekommst. So viel speicher hat der nu auch net!
Flor1an ist gerade online  
Alt 01.12.2006, 14:47  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Sry, meine natürlich keinen normalen Taschenrechner, zumal dort der Input wirklich etwas "numerisch" wäre...

Mein grafischer Taschenrechner aus meiner Schulzeit z.B. http://de.wikipedia.org/wiki/TI-92

Mit etwas Arbeit konnte man auch wunderbar über die selbstgebaute IR-Schnittstelle Chatten und Tetris spielen. Ist aber nun schon einige Jahre her...

Aber nun genug OT, meine Frage hatte keine ernsthafte Absicht eine PHP Anwendung für meinen Taschenrechner zu schreiben.
mAy^daY ist offline  
Alt 01.12.2006, 15:18  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Solche Taschenrechner waren/sind bei uns an der Schule verboten. Unser Taschenrechner durfte nicht mal Werte speichern ... haben sie alles schön beim Abi nachgeprüft :/
Flor1an ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php speicherbelegung eines arrays, php unset gibt speicher nicht frei, wann gibt php speicher einer variable frei in einer function, php gibt speicher nicht frei

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.