Edit report at https://bugs.php.net/bug.php?id=53980&edit=1
ID: 53980 Comment by: miau dot jp at gmail dot com Reported by: skibi82 at interia dot pl Summary: On the Windows-version of PHP can not allocate more memory than 512 memory_limi Status: Open Type: Bug Package: PHP options/info functions Operating System: Win7 , WinXP, Win2008 srv R2 PHP Version: 5.3.9 Block user comment: N Private report: N New Comment: This is caused by heap size limitation of Windows. A process can use heap up to nealy 1500MB on recent versions of Windows. Because of fragmentation, actual limit is less than 1500MB. For example, I added some debugging code to PHP (see https://gist.github.com/4011991 ) and ran following sample script. ---- <?php ini_set('memory_limit', '3072M'); define('MB', 1024 * 1024); $str = str_repeat('a', 400 * MB); $str = '' . $str; $str .= $str; >php bug53980.php [alloc] segment: 0x02CF0048-0x02D30047 size: 262144 (0MB) [free] segment: 0x02CF0048 [alloc] segment: 0x02CF0048-0x02D30047 size: 262144 (0MB) [alloc] segment: 0x02D30050-0x02D7004F size: 262144 (0MB) [alloc] segment: 0x102A0020-0x292E001F size: 419692544 (400MB) [alloc] segment: 0x292F0020-0x4233001F size: 419692544 (400MB) [free] segment: 0x102A0020 [realloc from] segment: 0x292F0020 [realloc to] segment: 0x00000000-0x3203FFFF size: 839122944 (800MB) Fatal error: Out of memory (allocated 420216832) (tried to allocate 838860801 bytes) in C:\***\bug55980.php on line 6 zend_mm_heap corrupted ---- Dispite the heap has nearly 1100MB free space in total, there is no contiguous 800MB space. Then HeapRealloc() fails and returns NULL. Previous Comments: ------------------------------------------------------------------------ [2012-03-06 11:51:30] shaun at laughey dot com Still an issue on PHP 5.3.10 tested on Windows 2008 and Windows 7 using FCGI and mod_php on both platforms. ------------------------------------------------------------------------ [2012-01-24 18:47:20] skibi82 at interia dot pl The error still occurs ------------------------------------------------------------------------ [2012-01-24 18:45:19] skibi82 at interia dot pl Fatal error: Out of memory (allocated 537919488) (tried to allocate 536870913 bytes) XXXX zend_mm_heap corrupted The error occurs regardless of the setting memory_limit ------------------------------------------------------------------------ [2011-11-04 15:54:48] skibi8 at interia dot pl In version 5.3.8 error still occurs E:\SVN>test.php 5.3.8 Limit:4024M 100 1000 PHP Fatal error: Out of memory (allocated 736362496) (tried to allocate 734003 01 bytes) in E:\SVN\test.php on line 25 --- echo phpversion()."\n"; ini_set ('memory_limit', '4024M'); echo 'Limit:'.ini_get ('memory_limit')."\n"; $mb=''; $x=0; do { $x++; $mb.='X'; }while ($x< 1048576); echo "100\n"; $x=0; $mb100=''; do { $x++; $mb100.=$mb; }while ($x< 100); echo "1000\n"; $x=0; $gb=''; do { $x++; $gb.=$mb100; }while ($x< 10); echo "OK\n"; Fatal error: Out of memory (allocated 736362496) (tried to allocate 734003201 b tes) in E:\SVN\test.php on line 25 zend_mm_heap corrupted ------------------------------------------------------------------------ [2011-11-04 15:40:14] paj...@php.net Please try with 5.3.8 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=53980 -- Edit this bug report at https://bugs.php.net/bug.php?id=53980&edit=1