Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wycieki pamięci a PHP, Pytanie teoretyczne
luinnar
post
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


Ostatnio (nie wiem skąd) naszła mni myśl: czy tworzę wyciek pamięci takim kodem:
  1. <?php
  2. $Object = new myClass();
  3. $Object = new myClass2();
  4. ?>


PHP samo usunie instancję klasy myClass z pamięci (tak jak to robi Java ze swoim odśmiecaczem pamięci) czy instancja zostanie w pamięci i zrobi się nam wyciek (tak jak w C)?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
luinnar
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

Ostrzeżenie: (0%)
-----


Tak jak mówił SonoQ zrobiłem prosty test:

  1. <?php
  2. class test
  3. {
  4. private $sZmienna = 'aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccc
    cdddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeee'
    ;
  5. }
  6.  
  7. for($i = 1; $i < 1000000000; $i++)
  8. {
  9. $Obj = new test();
  10. }
  11. ?>

Po uruchomieniu tego skrypciku nic nie wskazywało na wzrost ilości zajmowanej pamięci.

Aby się upewnić zrobiłem 2 test pokazujący jak powinna się zapychać pamięć gdyby był wyciek:
  1. <?php
  2. class test
  3. {
  4. private $sZmienna = 'aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccc
    cdddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeee'
    ;
  5. }
  6.  
  7. $aObj = array();
  8.  
  9. for($i = 1; $i < 1000000000; $i++)
  10. {
  11. $aObj[$i] = new test();
  12. }
  13. ?>

Ilość zadeklarowanej pamięci zaczęła gwałtownie się zwiększać (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Po zakończeniu skryptu komp musiał chwile popracować nad usunięciem z RAMu niepotrzebnych informacji.

Podsumowując
PHP automatycznie usuwa niepotrzebne instancje z pamięci (tak jak java).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 17:26