logo       


Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: Reducing the number of loaded exception files: msg#00014

Subject: Re: Reducing the number of loaded exception files
I would suggest to incorporate a method that serves as a central location to instantiate exception objects - a consistent object-instantiation system, if you will. This method could go inside a class that is always required/loaded so we don't have to include another file just for this purpose. Zend_Loader, maybe? This approach allows us to add more processing/error-handling logic to the method in future that ripples across the framework:
 
//////////////////////////////////////////////////////////////////////////
static function getException( $class, $message = 'ERROR', $code = 0, ... )
//////////////////////////////////////////////////////////////////////////
{
   self::loadClass( $class );
   //
     // Or straight require_once for performance, but then format the class-name to instantiate...
// require_once( $class );
   //
   return new $class( $message, $code, ... );
}
////////////////////////////////////////////////////////////////////////////////
 
Then, from within the code where an exception needs to be thrown, this becomes just a simple one-liner, instead of spilling require_once/etc lines of code all over the framework:
 
throw Zend_Loader::getException( <class>, <message>, <code>, ... );
 
 
2. On another note, how about other class-files that get included superfluously? I'm quite sure there are an awful lot of files included in the framework's classes without ever being used. ViewRenderer.php is just an example. If we really want to reduce the number of included files to improve performance, we need to work on these ones, too. Bottom line - include files only on a need-to-use basis and just-in-time! I, for one, don't want any files loaded that I don't want to use in my application - its just an over-head.
 
my2c
 


 
On 12/13/07, Shahar Evron <shahar.e-C1q0ot2/XZ0@xxxxxxxxxxxxxxxx > wrote:
A while back ago there was an attempt to eliminate the loading of unused
Exception files / classes by different ZF components. I don't know what
happened with that discussion, but I think we should do something about
it.

I've made some profiling of relatively simple ZF-based app (doesn't load
too many components - mostly the MVC, DB, Config, Registry etc. stuff)
and I've found some 10 calls to require_once to load an Exception class
without having a single exception thrown (that I know of - unless some
ZF code threw an exception and some other ZF component caught it).

10 redundant include files have quite an impact on performance,
especially in places where you have no opcode cache installed.

A while back ago I changed Zend_Http_Client to require_once it's
exception classes only when about to throw an exception, something like:

<?php
if ($error_happened) {
   require_once 'Zend/Http/Client/Exception.php';
   throw new Zend_Http_Client_Exception('Good news, everyone!');
}
?>

Now this might seem a bit cumbersome - but when considering the fact
that it's 1 line of code that never gets executed vs. always loading at
least one aditional file (not to mention cases where you load
Zend/Http/Client/Adapter/Exception.php which loads
Zend/Http/Client/Exception.php which loads Zend/Http/Exception.php which
loads Zend/Exception.php - you get the point) I think it's worth it.

If nobody has a nicer solution to this overweight problem, I suggest all
component maintainers will start doing the same (this is not my idea and
I know some already do so).

If you want, I can try to come up with a list of places that need to be
fixed.

Better suggestions are most welcome!

Thanks,

Shahar.

--

Shahar.


Ruby Jobs
Java Jobs
Jobs in California
more...
what
job title, keywords
where
city, state, zip
jobs by job search
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
db.firebase.por...    text.xml.xalan....    qnx.openqnx.dev...    user-groups.zar...    internationaliz...    kde.devel.konve...    finance.e-gold....    emacs.latex.pre...    gis.therion/200...    web.webmin.gene...    yellowdog.gener...    vserver/2003-08...    redhat.release....    sysutils.tivoli...    xfree86.expert/...    mail.becky.user...    hardware.netapp...    netbsd.ports.xe...    python.distutil...    boot-loaders.gr...    culture.interne...    java.springfram...    activedir/2006-...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe