|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-09-12 03:21 UTC] wez@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 18:00:01 2025 UTC |
Description: ------------ fread() seems to allocate length amount of memory for getting data from the connection, but does not release it till you do something to variable. If $dat did have data, and you did: $dat=$dat.''; It would then release any unused memory. Not sure if this is a bug, but I thought I would submit it incase. Reproduce code: --------------- <?php $fp=fsockopen('udp://192.168.0.1', 27015, $errno, $errstr); stream_set_blocking($fp, false); $dat=fread($fp, 4096000); fclose($fp); $bmem=memory_get_usage(); echo strlen($dat)."\n"; unset($dat); echo (memory_get_usage()-$bmem)."\n"; ?> Expected result: ---------------- Difference in memory usage should not be so huge as 4095896 bytes. Actual result: -------------- -4095896