[development] performance foo

Neil Drumm drumm at delocalizedham.com
Wed Dec 14 06:36:30 UTC 2005


Chris Johnson wrote:
> Just came across something that triggered a bit of performance testing.  
> One can cast objects to arrays and vice-versa in PHP.
> 
> So, in common.inc, we have a function called object2array() that loops 
> through  an object and makes it into an array.  Is that faster than the 
> equivalent function using a cast (array) operator?  No.  In fact, it's 
> about 2.4 times slower.  However, both are very fast for an object with 
> 26 elements.  Here's the benchmark:
> 
> 10000 'object2array' calls took 3.04 seconds.
> The average was 0.00030442 seconds per call.
> 
> 10000 'better' calls took 1.27 seconds.
> The average was 0.00012693 seconds per call.

Test out 10k calls to get_object_vars().

I've been running Drupal for a few months with a version of 
object2array() to see if the array handling is ever used:

function object2array($object) {
   if (is_object($object)) {
     foreach ($object as $key => $value) {
       $array[$key] = $value;
     }
   }
   else {
     trigger_error('Watch yer type!!');
     $array = $object;
   }

   return $array;
}

I haven't run into object2array being called with anything that isn't an 
object yet.

-- 
Neil Drumm
http://delocalizedham.com/


More information about the development mailing list