apc_sma_info() cung cấp một thông tin thú vị, có thể, có thể giải thích lý do xảy ra.
Thi apc_store() với một dữ liệu không tuần tự tạo ra cho tôi, trong block_lists chỉ số giá trị sau:
Array
(
[0] => Array
(
[size] => 608
[offset] => 33152
)
[1] => Array
(
[size] => 5589032
[offset] => 11211992
)
[2] => Array
(
[size] => 2175976
[offset] => 31378408
)
)
Trong khi serializing chúng bằng tay sản xuất:
Array
(
[0] => Array
(
[size] => 11178232
[offset] => 33760
)
[1] => Array
(
[size] => 1210040
[offset] => 16801024
)
[2] => Array
(
[size] => 15542104
[offset] => 18012280
)
)
Đó là tò mò, nhưng dường như với việc tuần tự hóa thủ công, APC chia nhỏ các phần dữ liệu đầu tiên và cuối cùng trong một khối lớn hơn, thực hiện bố cục nội dung tốt hơn.
Dường như không phải là điều nhỏ nhặt bởi vì tôi đã chạy thử nghiệm này một vài lần và tôi nhận được kết quả tương tự mọi lúc.
Nguồn
2012-10-16 20:40:19
'apc_store()' kích hoạt hàm '__sleep()', phải không? Nếu đó là sự thật, thì hàm [được chạy trước khi tuần tự hóa] (http://php.net/manual/en/oop4.magic-functions.php). Có lẽ điều đó làm giảm hiệu quả. Nó cũng giống như 'apc_store()' ghi đè lên các mục hiện có ... được cấp Tôi vẫn đang học PHP vì vậy tôi có thể là cách tắt. – Rob
@MikeDtrick: APC không sử dụng serialization. Nó chỉ sao chép toàn bộ cấu trúc 'zval' (trên mức C). – Crozin
@Crozin Đợi đã, cái gì? Điều này liên quan đến 'apc_store()' kích hoạt '__sleep()'? Điều đó có đúng không? – Rob