Re: Re: Memory investigation

From: Date: Wed, 03 Mar 2010 19:56:59 +0000
Subject: Re: Re: Memory investigation
References: 1 2 3 4 5  Groups: php.general 
Request: Send a blank email to php-general+get-302522@lists.php.net to get a copy of this message
global $fooSize = 0; function foo($id) { .... global $fooSize; if (empty($foos($id)) { $b = get_memory_usage(true); $foos[$id] = load_foo($id); $fooSize+= $b - get_memory_usage(true); } ... } On Wed, Mar 3, 2010 at 8:16 PM, larry@garfieldtech.com <larry@garfieldtech.com> 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@gmail.com 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 > >

« previous php.general (#302522) next »