you could read this
http://xdebug.org/docs/execution_trace
and then parse trace files to get the memory usage
create a global to store user functions, I think user function do not
populate get_defined_functions(); until the function is called;
$t = get_defined_functions();
$userFunctions = $t['user'];
$file = xdebug_get_tracefile_name();
parse the file and then create a function to call the said variable.
I think you can figure it out.
larry@xxxxxxxxxxxxxxxx wrote:
Currently it's mostly procedural with some components that are OO. I
suspect most of the memory sinks are large arrays (we have a lot of
them), but I am not certain of that. Hence my interest in more accurate
investigation tools.
--Larry Garfield
dsiembab01@xxxxxxxxx wrote:
couple questions Larry is this application composed of classes or
straight up no holes barred procedural code?
larry@xxxxxxxxxxxxxxxx wrote:
That's not really what I'm after. Let me try an example:
function foo($id) {
static $foos = array();
if (empty($foos[$id]) {
$foos[$id] = load_foo($id);
}
return $foos[$id];
}
When load_foo() is slow (e.g., lots of DB traffic or remote-server
calls or whatever), such caching can have a significant performance
boost. Sometime after foo() has been called 15 times from 30 places
in code, when I get to the end of the request (or just every time I
call foo() would be fine) I want to be able to do something like:
$cost = get_memory_used_by($foos);
So that I can determine how much memory that caching is costing me
over the lifetime of the page, and determine if it's a worthwhile
trade-off.
--Larry Garfield
dsiembab01@xxxxxxxxx wrote:
function check_memory_usage(&$memory)
{
$memory[] = memory_get_usage();
return $memory;
}
something like this?
you can put it wherever you like and returns an array for further
processing. You could optionally add a second argument to set the
index to a name and check if the name exists to add 1 to the end of
the name so your indexes stay maintained.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php