[請益] laravel 資料庫 要釋放res嗎?

作者: nono5938 (玥乂)   2017-05-05 22:00:10
我google了一下,
別人程式碼都沒有
free() 或是 close()之類的,
是不用釋放資源?
還是他自己會釋放啊,
怕會佔用我的資源。
作者: hiigara (石頭)   2017-05-06 10:27:00
是否寫習慣C...PHP引擎自己會做記憶體管理,你碰不到一般來說Resource Handler在用不到以後會自動被PHP收拾掉不過DB連線是例外,因為有Persistent Connectionshttp://php.net/manual/en/language.types.resource.php「用不到」指的是沒有其他東西指到這個變數,這邊跟PHP的垃圾回收機制綁在一起。一旦PHP認為這個變數可以被GC,就會自動把下面的資源放掉,記憶體釋放出來。所以官方文件「關閉PDO的DB連線」的方式是把pdo設為nullhttp://php.net/manual/en/pdo.connections.php實務上「判斷東西沒在用」這件事還滿麻煩的...以上面文件的例子來說,如果$sth沒有設為null,還是會因為$sth裡面有用到$dbh而無法把$dbh回收掉不過最少在這隻PHP跑完後,PHP還是會自動回收掉外部資源除~非~那是個persistence connection,那就會被留著讓下一個用到的PHP程式使用
作者: banqhsia (BEN)   2017-05-11 01:04:00
沒在管 +1
作者: blo6 (bbb)   2017-05-15 02:10:00
php是直譯語言,是優點也是缺點。優點是你不用深入管理記憶體,缺點是當效能極限時很難再提升。這也是facebook把php改成組譯的原因
作者: GALINE (天真可愛CQD)   2017-05-15 16:47:00
PHP 應該沒有 assembler..HHVM 靠 JIT,目前 PHP7.1 沒有JIT 就快要跟 HHVM 平起平坐,真的引入 JIT 的話應該更快沒有辦法操控底層資料結構是硬傷,但是這點對於九成九九的PHP 應用都不是問題,DB 以及網路傳輸沒那麼快更何況 Python 那麼慢大家都用得這麼開心了(酸
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-05-20 18:40:00
php是沒有asm 不過他底層一樣有opcode這些設計而且不是fb改的
作者: ej04cj86 (Swaglicious)   2017-06-01 07:00:00
Php 有自己的garbage collector,在一個request cycle結束後就會被collect and dump

Links booklink

Contact Us: admin [ a t ] ucptt.com