Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Oddly, passing in any parameter into a URL causes PHP to use LESS memory...
- echo memory_get_usage(true) . "<br />\n";
- $idmap = array();
- $rows2 = array("_1" => array(), "_2" => array(), "_3" => array(), "_4" => array(), "_5" => array(), "_6" => array(), "_7" => array());
- for ($x = 0; $x < 5000; $x++)
- {
- $idmap[$x] = array("test1");
- $row2 = array("A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.", $x);
- $options = array();
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $options[] = "A decent length string." . htmlspecialchars("A decent length string.") . "A decent length string.";
- $row2[] = implode(" | ", $options);
- $rows2["_6"][] = $row2;
- }
- // About 10MB RAM here with real-world data (the above is about 8MB with the test data - close enough?).
- echo memory_get_usage(true) . "<br />\n";
- $rows = array();
- foreach ($rows2 as $key => $rows3)
- {
- foreach ($rows3 as $num => $row)
- {
- // This occasionally (i.e. randomly) leaks memory like crazy in here (> 128MB),
- // despite the exact same data being passed in on the URL *AND* the exact same data in $rows2.
- $row[1] = htmlspecialchars(implode(", ", $idmap[$row[1]]));
- $rows[] = $row;
- // Even weirder, adding a simple if-statement here that does absolutely nothing causes the leak to disappear...
- //if ($_SERVER["REMOTE_ADDR"] != "")
- //{
- //}
- echo memory_get_usage(true) . "<br />\n";
- }
- }
- // About 20MB RAM here with real-world data...whenever the foreach() code above doesn't run wild.
- echo memory_get_usage(true) . "<br />\n";
- echo "Peak: " . memory_get_peak_usage(true) . "<br />\n";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement