Re: OOP slow -- am I an idiot?
| From: | Chris de Vidal | Date: | Wed, 11 Oct 2006 10:55:14 +0000 |
| Subject: | Re: OOP slow -- am I an idiot? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-242967@lists.php.net to get a copy of this message | ||
--- Larry Garfield <larry@garfieldtech.com> wrote:
> For your rudimentary example of object-relational mapping below, yes,
> performance is going to be atrocious. That's because you're not taking any
> advantage of the features that using OOP gives you.
Well, I /thought/ I was taking advantage of black box-style hiding (not sure what it's called),
that is, making sure the only place I type (and modify) my SQL query is hidden inside the private
method of a class.
> Again, pull extra data if you can. A somewhat larger result set is (usually)
> better than multiple queries. How much you want to front-load in your object
> and how much you want to defer to later depends on your specific problem and
> how frequently the data will be used.
OK that somewhat answers the question.
> 5) If you need to grab 100 objects at once, but just need basic data out of
> them, use a factory. Vis,
(code snipped)
I /think/ I understand the code. But I'd need more than just basic data, so I probably will
just
write a query.
> 6) If you need to do a complex query with a couple of joins and such, then
> don't waste your time or the computer's trying to shoe-horn it into SQL. SQL
> is not inherently OO to start with! Just write your query and loop it and be
> happy. OOP is not the answer to all problems. Sometimes it does just make
> matters worse, no matter what Sun tries to tell you. :-)
LOL
Yeah, I was thinking of shoe-horning things into SQL for speed.
> > I want my data to _only_ be accessed from the black box called an OOP
> > class.
>
> That will work and is achievable in about 30% of all situations. For the
> other 70%, you will have to just hunker down and *gasp* write SQL specific to
> the task at hand at least some of the time. How much of the time once again
> depends on your situation and the problem you're trying to solve.
*gasp*
:-)
From what it seems like people are telling me, it's a good idea to boot OOP for large numbers
of
objects where I need more than just a little information and just use an SQL query, as I
suspected. At least, for PHP; I wonder what Java people do in this situation.
CD
Think you're a good person? Yeah, right! ;-)
Prove it and get ten thousand dollars:
TenThousandDollarOffer.com