[PHP] Re: what is better for performance?

2005-12-11 Thread Martin Nicholls
The question is null and void, the real question is which do you need to 
use, just because objects in php behave like arrays, that does not mean 
the are interchangeable in all cases. You don't create an object just 
for the sheer hell of it.


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: what is better for performance?

2005-12-06 Thread Oliver Grätz
Karel Kozlik schrieb:
   Hi,
 I am just thinking about that what is better for storeing structured 
 variables in point of view of performance.
 
 Is better store structured variables in associative array, for example:
 
 $person['first_name'] = 'Karel';
 $person['last_name'] = 'Kozlik';
 $person['address'] = 'somewhere on Earth';
 
 or in object like this:
 
 $person-first_name = 'Karel';
 $person-last_name = 'Kozlik';
 $person-address = 'somewhere on Earth';
 
 I feel that objects are better for performance, but work with 
 associative arrays is pleasanter for me. May be the diference in 
 performance measurable? (in heavy loaded environment)

First of all: You are already using something like eAccelerator? You
have optimized your database queries to take full advantage of the query
cache in your DBMS? You are using a userland cache to increase the
performance for seldomly changing content? If the question is No to
these or similar questions: Don't waste your time on thinking about
performance differences in the microsecond range! Unless your site
really has to take some hundred thousand page requests a day this is
just silly.

Now for the concept of array vs. attributes: I used to prefer the array
notation, too. But think about this: Arrays suggest some similarity
between the array elements, it suggest the elements are somewhat of the
same type. On the other side attributes are just that: Attributes of an
entity. So, it's more appropriate to use array notation for a
collections of persons but not for the attributes of a single person.
This started to change my mind about using array syntax here. Besides,
using - saves you two keystrokes/bytes.

OK, that was for conceptual view. Now technical ;-)
The performance depends on the version of PHP you are using. For PHP4,
classes and objects are very much like arrays in disguise, it's only
with the Zend Engine 2 of PHP5 that this has changed. This engine has
greatly improved performance in PHP 5.1, so yeah, with PHP5.1 attributes
 could be quicker than arrays BUT you shouldn't care ;-)

But remember: Always prefer concept to performance when designing
software. Performance considerations are welcome and important for the
large scale (as in you shouldn't fetch all the rows in a table if you
display only ten of them = use LIMIT) but micro-profiling is
definitely something you should do when the system's up and running.

OLLi

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php