Sử dùng cái nào là tốt hơn khi giải phóng bộ nhớ trong PHP: unset() hay $var = null?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
199 lượt xem
PHP senior
  • unset() thực hiện đúng những gì tên của nó nói - unset a variable. Nó không buộc giải phóng bộ nhớ ngay lập tức. Bộ thu gom rác của PHP sẽ thực hiện điều đó khi nó thấy phù hợp - theo chủ ý, ngay khi các chu kỳ CPU đó không cần thiết, hoặc muộn nhất là trước khi tập lệnh hết bộ nhớ.
  • Nếu bạn đang làm $whatever = null; thì bạn đang viết lại dữ liệu của biến. Bạn có thể được giải phóng / thu hẹp bộ nhớ nhanh hơn, nhưng nó có thể lấy cắp chu kỳ CPU từ mã thực sự cần chúng sớm hơn, dẫn đến thời gian thực thi tổng thể lâu hơn.

unset($a) cũng xóa $a khỏi bảng ký hiệu (symbol table) và có vẻ như $a = null nhanh hơn một chút so với bản đối chiếu unset() của nó: việc cập nhật một mục trong bảng ký hiệu dường như nhanh hơn việc xóa nó.

Câu hỏi tiếp theo: yield có nghĩa là gì trong PHP?
{{login.error}}