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

看板PHP作者 (玥乂)時間7年前 (2017/05/05 22:00), 7年前編輯推噓4(4024)
留言28則, 6人參與, 最新討論串1/1
我google了一下, 別人程式碼都沒有 free() 或是 close()之類的, 是不用釋放資源? 還是他自己會釋放啊, 怕會佔用我的資源。 ----- Sent from JPTT on my Xiaomi MI 5. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.168.131 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1493992812.A.598.html

05/06 10:27, , 1F
是否寫習慣C...PHP引擎自己會做記憶體管理,你碰不到
05/06 10:27, 1F

05/06 10:30, , 2F
一般來說Resource Handler在用不到以後會自動被PHP收拾掉
05/06 10:30, 2F

05/06 10:31, , 3F
不過DB連線是例外,因為有Persistent Connections
05/06 10:31, 3F
我就是想問, 用laravel的function去執行DB指令, 也沒看過有人在釋放這個資源的啊OAO 不過我想我知道差別在哪了, 用laravel的function輸出會直接成為一個array, php指令輸出會以其他方式存在, 大概吧。。。。 ※ 編輯: nono5938 (119.14.168.131), 05/07/2017 02:08:27 ※ 編輯: nono5938 (119.14.168.131), 05/07/2017 02:11:30

05/07 09:52, , 5F
「用不到」指的是沒有其他東西指到這個變數,這邊跟PHP的
05/07 09:52, 5F

05/07 09:53, , 6F
垃圾回收機制綁在一起。一旦PHP認為這個變數可以被GC,就
05/07 09:53, 6F

05/07 09:53, , 7F
會自動把下面的資源放掉,記憶體釋放出來。
05/07 09:53, 7F

05/07 09:55, , 8F
所以官方文件「關閉PDO的DB連線」的方式是把pdo設為null
05/07 09:55, 8F


05/07 09:57, , 10F
實務上「判斷東西沒在用」這件事還滿麻煩的...以上面文件
05/07 09:57, 10F

05/07 09:58, , 11F
的例子來說,如果$sth沒有設為null,還是會因為$sth裡面
05/07 09:58, 11F

05/07 09:58, , 12F
有用到$dbh而無法把$dbh回收掉
05/07 09:58, 12F

05/07 10:00, , 13F
不過最少在這隻PHP跑完後,PHP還是會自動回收掉外部資源
05/07 10:00, 13F

05/07 10:01, , 14F
除~非~那是個persistence connection,那就會被留著
05/07 10:01, 14F

05/07 10:01, , 15F
讓下一個用到的PHP程式使用
05/07 10:01, 15F
wow 謝謝你這麼詳細的回答 ※ 編輯: nono5938 (39.10.202.139), 05/07/2017 16:00:56

05/11 01:04, , 16F
沒在管 +1
05/11 01:04, 16F

05/15 02:10, , 17F
php是直譯語言,是優點也是缺點。優點是你不用深入管理記憶
05/15 02:10, 17F

05/15 02:10, , 18F
體,缺點是當效能極限時很難再提升。這也是facebook把php改
05/15 02:10, 18F

05/15 02:10, , 19F
成組譯的原因
05/15 02:10, 19F

05/15 16:47, , 20F
PHP 應該沒有 assembler..HHVM 靠 JIT,目前 PHP7.1 沒有
05/15 16:47, 20F

05/15 16:48, , 21F
JIT 就快要跟 HHVM 平起平坐,真的引入 JIT 的話應該更快
05/15 16:48, 21F

05/15 16:49, , 22F
沒有辦法操控底層資料結構是硬傷,但是這點對於九成九九的
05/15 16:49, 22F

05/15 16:49, , 23F
PHP 應用都不是問題,DB 以及網路傳輸沒那麼快
05/15 16:49, 23F

05/15 16:50, , 24F
更何況 Python 那麼慢大家都用得這麼開心了(酸
05/15 16:50, 24F

05/20 18:40, , 25F
php是沒有asm 不過他底層一樣有opcode這些設計
05/20 18:40, 25F

05/20 18:40, , 26F
而且不是fb改的
05/20 18:40, 26F

06/01 07:00, , 27F
Php 有自己的garbage collector,在一個request cycle
06/01 07:00, 27F

06/01 07:00, , 28F
結束後就會被collect and dump
06/01 07:00, 28F
文章代碼(AID): #1P38LiMO (PHP)