ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-07-2009, 14:06
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Soll man variablen + arrays am ende löschen?

Hallo,

In einigen php scripten istz mir aufgefallen, daß der eine oder andere am ende des scripts variablen oder daten köscht:

PHP-Code:
unset($var1,$var2,$array1,$array2); 
Jetzt wollte ich mal fragen was da der sinn drin ist.
Gibt das dann beim provider wieder etwas RAM frei oder ist das gut um datenklau zu verhindern?

Bei einigen scripten nutze ich das gelegentlich auch. Da wende ich allerdings dieses unset am script-start und am script ende an.
Am start - damit ich sicher bin die dinger sind leer und am ende einfach mal so weil das andere auch tun.

Kann man mit unset alles richtig löschen, also strings, variablen, arrays und sessions oder ist für unset nicht für alles geeignet?
Mit Zitat antworten
  #2 (permalink)  
Alt 03-07-2009, 14:29
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
unset befindet sich auf einem aufstrebenden Ast
Standard

Eigentlich wird das alles durch die Garbage Collection geregelt. Schaden tut's trotzdem nicht.
Mit Zitat antworten
  #3 (permalink)  
Alt 03-07-2009, 16:06
piratos
 Guest
piratos
Beiträge: n/a
Standard

PHP: unset - Manual

Ich setzte es da ein wo es sich wirklich lohnt - also richtig RAM frei wird, ansonsten nicht, denn auch das kostet Zeit.
Mit Zitat antworten
  #4 (permalink)  
Alt 03-07-2009, 20:36
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.104
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Wenn du deine Prozesse in vernünftige Funktionen gliederst kannst du drauf verzichten, da beim Verlassen einer Funktion erstmal die lokalen Variablen verworfen werden. Ich benötige unset nur für das Entfernen von Arrayelementen.
Mit Zitat antworten
  #5 (permalink)  
Alt 04-07-2009, 12:19
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

unset() am Scriptanfang bringt nichts.*

PHP ist nicht C. Du bekommst niemals einen alten Wert aus einem früheren Scriptlauf zu sehen. Bis zum ersten Schreibzugriff ist der Wert einer Variablen Null und danach ... egal.
In der Zend Engine steckt eine Speicherverwaltung (eigentlich die Variablenverwaltung), die genau weiß ob eine Variable schon gefüllt wurde und nur dann wurde ihr überhaupt ein Stück Speicher zugeordnet, aber eben auch direkt überschrieben. Es gibt keine Allozierung ohne direkt folgendes Write.


*) Außer Warning undefined variable ...

Geändert von onemorenerd (05-07-2009 um 11:54 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 04-07-2009, 13:25
piratos
 Guest
piratos
Beiträge: n/a
Standard

Am Scriptende löschen bringt nichts.

Innerhalb eines Scriptes ändert es den tatsächlichen Bedarf.

Beispiel:

Einlesen einer Datei mit 17918 Bytes innerhalb eines Scriptes.

Ohne löschen der Variable nach dem Lesen:

Verbrauch normal:108616 Verbrauch Spitze:262144

Mit löschen der Variable nach dem Lesen:

Verbrauch normal:90952 Verbrauch Spitze:262144

Der Löschorgang selbst verballert also über 300 Bytes.

Besteht die Variable aus einem Object und die Inhalte selbst aus Objecten kann das ganz anders aussehen mit bis zu 0 Wertschöpfung - muss man probieren.
Mit Zitat antworten
  #7 (permalink)  
Alt 05-07-2009, 01:52
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.104
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Gehört eh alles in den Bereich Mikroperformance, ist also der Rede nicht wert.
Mit Zitat antworten
  #8 (permalink)  
Alt 06-07-2009, 11:43
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von PHP-Desaster Beitrag anzeigen
Gehört eh alles in den Bereich Mikroperformance, ist also der Rede nicht wert.
So ist es fast, eine gute Gesamtperformance besteht allerdings immer aus extrem vielen kleinen Dingen und selten aus einem einzigen großen Wurf.
Mit Zitat antworten
  #9 (permalink)  
Alt 06-07-2009, 12:58
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Nach Paretoprinzip verschlingen 20% des Codes 80% der Laufzeit.
Mit einem Profiler bekommt man schnell heraus was die 20% sind.
Und wenn man sie optimiert hat, gilt das Prinzip immernoch.

Irgendwann rechnet sich die Optimierung nicht mehr. Die Performancegewinne werden immer kleiner, die Kosten für die Codeoptimierung größer.

À propos Kosten: zusätzliche Hardware ist billiger als Entwicklungsarbeit. Deshalb wird meist zuerst versucht, Performanceprobleme mit Hardware zu erschlagen. Deshalb sollte man auch bei kleinen Applikationen so programmieren, dass sie auf einer Serverfarm laufen kann.
Mit Zitat antworten
  #10 (permalink)  
Alt 06-07-2009, 13:30
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Mit einem Profiler bekommt man schnell heraus was die 20% sind.
Und wenn man sie optimiert hat, gilt das Prinzip immernoch.

Irgendwann rechnet sich die Optimierung nicht mehr.

À propos Kosten: zusätzliche Hardware ist billiger als Entwicklungsarbeit. Deshalb wird meist zuerst versucht, Performanceprobleme mit Hardware zu erschlagen. Deshalb sollte man auch bei kleinen Applikationen so programmieren, dass sie auf einer Serverfarm laufen kann.
Auch das ist richtig was insbesondere mit Profilerarbeit schnell zu erkennen ist.

Aber nicht jeder kann und will in Hardware investieren.
Das gilt gerade für den Opensourcebereich.
Dort werden Serverplätze häufig nach dem geringsten Preis ausgesucht und / oder man scheut einfach den Umstieg auf eine bessere Hardware sprich besseren Serverplatz.

Nach den ersten 20% kommen andere 20%.
Die Verbesserungsmöglichkeiten ohne Strukturänderungen sind dann tatsächlich irgendwann nur noch marginal und das man dann mit erledigen, wenn man da irgendwo in Codenähe ist oder man lässt es, weil es sich nicht lohnt.

Ist eine Anwendung hoch optimiert läuft diese auch auf langsamer Hardware akzeptabel schnell, auf einer besseren Hardware wie eine Rakete.

Man kann also mangelnde Performance durch bessere Hardware ausgleichen schleppt sie aber immer mit.

Aber wir schweifen hier gewaltig von der Ausgangsfrage ab und da ist meine Antwort - lohnt nicht bringt nichts.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php.script soll Ende mitteilen Murmel PHP Developer Forum 4 03-06-2009 01:35
Wie kann ich prüfen ob ich an ENDE eines Arrays bin? HansDerLange PHP Developer Forum 2 12-06-2008 21:40
[PHP5] Funktion nl2br setzt <br> soll aber nicht am Ende ? Natheedo PHP Developer Forum 1 18-06-2006 23:03
leere Elemente am Ende eines Arrays löschen Yul123 PHP Developer Forum 3 11-02-2005 11:01
[Variablen] 2 Arrays vergleichen und gleiche werte aus 1. löschen BlackPixel PHP Developer Forum 10 23-01-2004 10:15

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
belbit Ticketcenter-Script ansehen belbit Ticketcenter-Script

Verwalten Sie Supportanfragen zuverlässig im Web2.0-Stil anstatt per E-Mail - inkl. Überprüfung, ob Antworten gelesen wurden und mehr.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Ticketsystem
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

24.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.