Kom ihåg mig?
Home Menu

Menu


PHP - unset()'s betydelse

Ämnesverktyg Visningsalternativ
Oläst 2004-09-03, 23:02 #1
Filips avatar
Filip Filip är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2003
Inlägg: 935
Filip Filip är inte uppkopplad
Mycket flitig postare
Filips avatar
 
Reg.datum: Jan 2003
Inlägg: 935
Hur stor betydelse har funktionen unset() egentligen? Är det något som folk varmt rekommenderar? eller är det skit samma i serverkapacitetshänseende?
Filip är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 00:20 #2
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Menar du alltså att man ska köra unset() efter varje variabel i scriptet när man inte behöver använda den mer? Känns dumt i så fall.

Jag använder aldrig funktionen mer än när jag just behöver den. Alla variabler "unsetas" ju ändå när scriptet körts klart.
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 00:43 #3
Jesters avatar
Jester Jester är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2004
Inlägg: 363
Jester Jester är inte uppkopplad
Flitig postare
Jesters avatar
 
Reg.datum: Apr 2004
Inlägg: 363
Citat:
Originally posted by Filip@Sep 3 2004, 22:02
Hur stor betydelse har funktionen unset() egentligen? Är det något som folk varmt rekommenderar? eller är det skit samma i serverkapacitetshänseende?
Variabler i PHP-script är väl ändå bara lokala och "förintas" då scriptet körts?

Hur processkrävande skulle i sådana fall ett script vara för att detta skulle överhuvudtaget märkas?
Jester är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 01:42 #4
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
Hanterar du exempelvis stora arrayer kan unset vara till hjälp för att frigöra minne. Generellt sett används den nog måttligt för att hjälpa prestandan.
__________________
www.ip2nation.com (ip till land)
Per är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 03:09 #5
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
PHP har en garbage collector, det innebär att den rensar alla variabler som inte har nån referens till sig. Vilket normalt inträffar när scriptet körts klart.

Det mao rätt så ointressant att använda unset annat än för att markera att en variabel är "död". Däremot kan det vara intressant att se till att kopplingar till databaser osv kopplas ner.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 11:16 #6
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
Per Per är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2003
Inlägg: 719
Citat:
Originally posted by grazzy@Sep 4 2004, 02:09
PHP har en garbage collector, det innebär att den rensar alla variabler som inte har nån referens till sig. Vilket normalt inträffar när scriptet körts klart.

Det mao rätt så ointressant att använda unset annat än för att markera att en variabel är "död". Däremot kan det vara intressant att se till att kopplingar till databaser osv kopplas ner.
Jag håller helt med dig, men garbage collectorn sätter som du säger inte igång förrän scriptet har gått och dött.

Kod:
<?php
echo memory_get_usage()."\n";
for ($i=0;$i<100000;$i++) {
 $arr[] = rand(0, 10000000000);
}
echo memory_get_usage()."\n";
unset($arr);
echo memory_get_usage()."\n";
?>
Ger t.ex:

Citat:

14112
6138552
28472
__________________
www.ip2nation.com (ip till land)
Per är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 12:05 #7
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
Tja.. det där känns väl inte som en grej som man gör så ofta
Sparar hundratusen slumpmässiga tal i en array dvs.

Men om man gör det så kan det väl kanske vara ide att slänga arrayen lite då och då.. 5,8mb minnesanvändning är juh inte så farligt det heller.. såvida du inte har många samtida users.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-04, 14:39 #8
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Citat:
Originally posted by grazzy@Sep 4 2004, 02:09
Däremot kan det vara intressant att se till att kopplingar till databaser osv kopplas ner.
Är inte det ganska onödigt? Anslutningen till databasen kopplas ju ändå ner när scriptet körts klart. Om man inte använder mysql_pconnect() vill säga.

Jag brukar sällan använda mysql_close() för att stänga anslutningar till databasen. Jag startar anslutningen då den behövs och sen låter jag den vara öppen tills scriptet körts klart. Är det fel och finns det några nackdelar med det förfarandet?
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-05, 13:55 #9
Yanneloss avatar
Yannelos Yannelos är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 57
Yannelos Yannelos är inte uppkopplad
Medlem
Yanneloss avatar
 
Reg.datum: Apr 2004
Inlägg: 57
Citat:
Originally posted by elofsson@Sep 4 2004, 13:39
Jag brukar sällan använda mysql_close() för att stänga anslutningar till databasen. Jag startar anslutningen då den behövs och sen låter jag den vara öppen tills scriptet körts klart. Är det fel och finns det några nackdelar med det förfarandet?
Jag gjorde så förut tills jag fick felet "Too many connections to ...." eller något liknande, det var ca 3 år sedan så jag vet inte om det var för att det vara en tidigare version av php eller liknande, men det blev iaf fel så jag använder alltid mysql_close().

Sen jag började med det har felet aldrig kommit upp igen, så det kan vara en tanke att alltid stänga den....

mvh
Andreas
Yannelos är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:16.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017