| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [2012-02-01 03:21 UTC] laruence@php.net
  [2012-02-01 03:21 UTC] laruence@php.net
 
-Status: Open
+Status: Not a bug
  [2012-02-01 14:56 UTC] npm at nuestrared dot com
  | 
    |||||||||||||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 05:00:01 2025 UTC | 
Description: ------------ Hi, this is a recurring problem in PHP when unserializing large nested objects. When unserializing inside a loop the same serialized object, the total memory consumption increases every couple of iterations. I am attaching the code to replicate it. Have tested it in the latest 5.4 (snap), it also occurs in 5.3. Let me know if you need any more details, Tested on Debian Linux 64 wheezy/sid, however I believe is platform independent. Couldn't find a bug category for serialize/mem leak related issues. Test script: --------------- <?php $str = base64_decode('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'); for ($i=0; $i<1000; $i++) { echo "Iteration $i\t Mem ".memory_get_usage(true)."\n"; unserialize($str); } Expected result: ---------------- The memory consumption should be stable, it increases with iterations. Actual result: -------------- Result from script: Iteration 0 Mem 262144 Iteration 1 Mem 524288 Iteration 2 Mem 524288 Iteration 3 Mem 524288 Iteration 4 Mem 524288 Iteration 5 Mem 524288 Iteration 6 Mem 524288 Iteration 7 Mem 786432 Iteration 8 Mem 786432 Iteration 9 Mem 786432 Iteration 10 Mem 786432 Iteration 11 Mem 786432 Iteration 12 Mem 786432 Iteration 13 Mem 786432 Iteration 14 Mem 1048576 Iteration 15 Mem 1048576