當使用普通PHP數組創建新數組(和元素)時,以下代碼在PHP 5.3中使用360字節(帶和不帶APC)。即使向$ _GET添加元素也只使用304個字節。但是,在$ _SERVER中創建附加元素時,相同的代碼使用4,896字節!
$mem = memory_get_usage();
//$array = array('HTTP_X_REQUESTED_WITH' => NULL);
$_SERVER['HTTP_X_REQUESTED_WITH'] = NULL;
//$_GET['HTTP_X_REQUESTED_WITH'] = NULL;
print (memory_get_usage() - $mem).' bytes<br>';
print memory_get_usage().' bytes (process)<br>';
print memory_get_peak_usage(TRUE). ' bytes (process peak)<br>';
print (memory_get_usage() - $mem).' bytes<br>';
什麼在世界導致$ _SERVER陣列使用這麼多額外的內存?
對於NULL值隨機位置開銷5kb肯定值得注意。但是,如果散列表是答案,也許我可以通過填充一個普通的PHP數組並觀察內存使用情況來複制問題。 – Xeoncross 2010-12-08 03:06:32