 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
cdanea
Data înscrierii: 05/Iul/2003
Mesaje: 115
Locație: Bucuresti
|
| Trimis: Joi Mar 23, 2006 5:29 pm Titlul subiectului: Moartea obiectelor |
|
|
presupunand ca am o agregare generica de obiecte, implementata simplist printr-un array asociativ:
<?php
$objectIterator['identifier1'] = &new Obj1();
$objectIterator['identifier2'] = &new Obj2($arg1);
$objectIterator['identifier3'] = &new Obj2($arg2);// aceeasi clasa, alte proprietati
$objectIterator['identifier4'] = &new Obj3();
?>
Daca obiectele referentiate sunt niste mici monstruletzi in care am mii de KB de informatie, ma intereseaza un garbage collection efectiv in timpul executiei, sa nu ajung sa ies din cei 8M max oferiti de Zend.
Cand folosesc
<?php
unset($objectIterator['identifier1']);
?>
se apeleaza si destructorul clasei Obj1 ? Sau mai bine zis functia unset dereferentiaza identificatorul astfel dealocand si obiectul, sau imi dealoca doar referinta, lasandu-mi in neant o zona de memorie sa bantuie fara sansa de accesare pana la sfarsitul executiei? |
|
| Sus |
|
carco
Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti
|
| Trimis: Joi Mar 23, 2006 5:51 pm Titlul subiectului: |
|
|
ca la scoala:
<?php
$x=array();
$x['a1']=& new A;
$x['b1']=& new B;
$x['a2']=& new A(2);
unset($x['a1']);
$x['b2']=& new B(2);
unset($x['b1']);
echo 'END: main<br />';
class A {
function __construct($a=1) {
echo 'NEW: A ('.$a.')<br />';
}
function __destruct() {
echo 'END: A<br />';
}
}
class B {
function __construct($a=1) {
echo 'NEW: B ('.$a.')<br />';
}
function __destruct() {
echo 'END: B<br />';
}
}
?>
Rezultat:
<pre>
NEW: A (1)
NEW: B (1)
NEW: A (2)
END: A
NEW: B (2)
END: B
END: main
END: B
END: A
</pre> |
|
| Sus |
|
cdanea
Data înscrierii: 05/Iul/2003
Mesaje: 115
Locație: Bucuresti
|
| Trimis: Joi Mar 23, 2006 5:54 pm Titlul subiectului: |
|
|
| mda, chiar asa :D |
|
| Sus |
|
whooper
Data înscrierii: 05/Apr/2005
Mesaje: 727
Locație: Toronto ON
|
| Trimis: Joi Mar 23, 2006 11:43 pm Titlul subiectului: |
|
|
| Cei 8Mb pot fi si mai multi, find oferiti de admin in timpul configurarii .. |
|
| Sus |
|
cdanea
Data înscrierii: 05/Iul/2003
Mesaje: 115
Locație: Bucuresti
|
| Trimis: Vin Mar 24, 2006 6:32 pm Titlul subiectului: |
|
|
normal, dar trebuie sa ai cateva lampi sparte la etaj, daca ajungi sa te gandesti ca ai nevoie fie si de jumatate din default-ul de 8.
Mai mult, imi place sa fac aplicatii portabile pe orice server la comanda.
Daca realitatea.tv si-au luat-o in barba ca nu au specificat in contractul cu Prigoana si faza cu domeniul, Dl Prigoana i-a lasat sa faca super trafic, si apoi le-a luat adresa, normal. Asta e o problema simpla, care nu necesita schimbarea serverului propriu zis, dar daca da faliment firmaLuPeste SRL, si clientul tau tre sa isi gaseasca alt host?
E bine sa te intinzi la ini_set numai pe acele setari care stii ca sunt lasate in general pe nivelul "allow_override options", si mai niciodata pe cele in care trebuie sa te bazezi pe admin. |
|
| Sus |
|
aurelian
Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti
|
| Trimis: Sâm Mar 25, 2006 12:59 pm Titlul subiectului: |
|
|
cdanea a scris: normal, dar trebuie sa ai cateva lampi sparte la etaj, daca ajungi sa te gandesti ca ai nevoie fie si de jumatate din default-ul de 8.
mda, eu am cam 24 - 32, si nu am nici o lampa sparta :)
pot dovedi cu acte.
in plus traim intr-o perioada in care calculatoarele moderne au cel putin 1GB RAM, de ce sa nu foloseasca si php-ul 32 MB? |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|