I've been asked by my superiors to justify using Zope for our web database applications from a performance perspective. I've searched the web and tried to search the Zope site for any relevant performance benchmarks comparing Zope to languages such as ASP, PHP and JSP. Has anyone done any real world benchmarks? Thanks, Steven Grimes Database Engineer sgrimes@atinucleus.com Accelerated Technology, Inc. 720 Oak Circle Drive East Mobile, AL 36609 TEL: 334-661-5770 x2348 FAX: 334-661-5788 www.acceleratedtechnology.com ------------------------------------------------------------ "Nucleus. All You NEED in an RTOS. Royalty Free." ------------------------------------------------------------
Steven Grimes wrote:
I've been asked by my superiors to justify using Zope for our web database applications from a performance perspective. I've searched the web and tried to search the Zope site for any relevant performance benchmarks comparing Zope to languages such as ASP, PHP and JSP. Has anyone done any real world benchmarks?
Sigh. Unfortunately, there is almost no chance that Zope will compare favorably to any of the options that you've mentioned *purely from a performance standpoint*. This is because DTML needs to be evaluated, and the engine that's doing the evaluating is itself written in an interpreted language (Python). Whereas the interpreting engines that you've mentioned are written in compiled languages, or in the case of JSP a bytecode compiled language (somebody is certain to correct me on this if I'm wrong). However, Zope is more than fast enough, so your superiors are actually asking the wrong question. The thing is, it's a heck of a lot cheaper to buy extra hardware than it is to pay more people, and in my opinion, Zope is a huge productivity enhancer when it comes to building web-applications. Time to market is reduced, because so much has already been built for you (user management, security system, etc.), so you don't have to reinvent the wheel (or Access Control Lists) for your application. The same goes for XML-RPC, WebDAV, LDAP, etc. Buying more hardware is cheaper than buying more programmers, and scales much better too (ever tried adding people to a late project?). With Zope, I can build (for example) a fairly sophisticated Intranet for a company in a couple of days, without breaking into a sweat. This Intranet will include personal folders for the users, a bug/ticket tracker, industry news, departmental pages, and any of a dozen other goodies like discussion forums and a collaborative documentation system. Then I can refine it over another couple of days. By any sane measure, this is far more cost effective for a company than paying two or more programmers to build something equivalent in a couple of months, just to save a grand on hardware. HTH, Michael Bernstein.
"Michael R. Bernstein" wrote:
Unfortunately, there is almost no chance that Zope will compare favorably to any of the options that you've mentioned *purely from a performance standpoint*. This is because DTML needs to be evaluated, and the engine that's doing the evaluating is itself written in an interpreted language (Python). Whereas the interpreting engines that you've mentioned are written in compiled languages, or in the case of JSP a bytecode compiled language (somebody is certain to correct me on this if I'm wrong).
However, Zope is more than fast enough, so your superiors are actually asking the wrong question.
The thing is, it's a heck of a lot cheaper to buy extra hardware than it is to pay more people, and in my opinion, Zope is a huge productivity enhancer when it comes to building web-applications. Time to market is reduced, because so much has already been built for you
This is true, within limits. Some environments have a maximum latency that they are willing to make a pair of eyeballs wait before a page is displayed. If a page is computationally complex, it would be possible to get Zope to take too long to render the page, even on a lightly loaded, high performance box. At that point, your only solution is to move to a higher performance environment. However, that is the whole point behind python scripts and python products. Let DTML be used for page assembly (sticking fragments together in the correct order), but let computation be done inside python. This has two advantages. One, you lose the double interpretation of using an interpreted language to interpret your dtml before rendering. Two, you can write a module in C, which is about as fast as you could possibly need to get in a web application environment. I suppose that from C, you could always call some assembly code... There is no good reason that Zope shouldn't be able to perform up to anyone's standards, but you lose some of the development efficiency if you have to drop into python or C whenever you want to do something fast. Fortunately, unless you spend lots of time working in Zope for fortune 500 external websites, you probably don't need that kind of performance. I actually found that on fairly simple templates (assuming that most computation is done in python), Zope is EVERY bit as fast as PHP running as a module in Apache. It compared favorably to Cold Fusion when I tested it a year ago, too. Every language has its stong and weak points. It is usually pretty easy to code around them. ASP is faster than just about anything around, when it comes to page assembly. If you are doing complicated computation on SQL results, it slows right down with the rest of them. JSP with a really good JVM is also getting pretty damn fast, even on Linux. After that, you can probably lump mod_php, mod_perl, cold fusion, zope, and midgaard all into the same category, with mod_perl at the bottom. I will ignore the writing of custom apache modules to build your application, as that is a pretty expensive development model. --sam
Michael R. Bernstein said -
Unfortunately, there is almost no chance that Zope will compare favorably to any of the options that you've mentioned *purely from a performance standpoint*. This is because DTML needs to be evaluated, and the engine that's doing the evaluating is itself written in an interpreted language (Python). Whereas the interpreting engines that you've mentioned are written in compiled languages, or in the case of JSP a bytecode compiled language (somebody is certain to correct me on this if I'm wrong).
Python (and so Zope) actually does compile to its own bytecode. Tom P
Steven, TECHNICALLY: Sensible thing to say would be: Use PHP when PHP is the best option for _you_ etc. for Zope and ASP ...technically. I picked up Zope in my spare time spanning over a period as a ASP and PHP developer. Finally having found the Zen of Zope, going back to PHP or even worse to ASP is horrible. I can't say this for JSP but Zope _IS_ considerable better tool for web dynamic publishing compared to MS ASP and PHP. That's the truth from someone who has thoroughly tested all of them. Coding away in PHP, you might feel productive, but that could be just because you have to type more letters in an editor. The benefits with Zope gets more obvious to you after you have tried Zope for a while. This is not the case when you for example move from PHP to ASP, where you notice the difference already after a couple of days. In my computer/webdevelopment friends environment, I have noticed that people like Zope more if they previously only knew one or two of the middlewares. OTHER ISSUES: Zope developers are difficult to get for human resource managers! This is not a small problem. It's a severe problem for the success of Zope. However, you need less Zope developers to your corporate projects thanks to the way Zope work; so you can't judge Zope too harshly on this. Unless you yourself or somebody in your company is a good sys admin, you might find yourself in problems if you are trying to build in some important products with Zope, like database adapters or ZEO. I have found myself many times asking our unix expert to help me when I'm stuck building python with mysql or something. CONCLUSION: Zope is probably technically the best option for most web [/digital] publishing projects. PHP, ASP and JSP are all easier to "handle" as tools for management. I hope that I have shed some light on your wonders, Peter ----- Original Message ----- From: "Steven Grimes" <sgrimes@atinucleus.com> To: "Zope" <zope@zope.org> Sent: Tuesday, April 03, 2001 12:40 AM Subject: [Zope] Zope vs other Web Languages.
I've been asked by my superiors to justify using Zope for our web database applications from a performance perspective. I've searched the web and tried to search the Zope site for any relevant performance benchmarks comparing Zope to languages such as ASP, PHP and JSP. Has anyone done any real world benchmarks?
Thanks, Steven Grimes Database Engineer sgrimes@atinucleus.com
Accelerated Technology, Inc. 720 Oak Circle Drive East Mobile, AL 36609 TEL: 334-661-5770 x2348 FAX: 334-661-5788 www.acceleratedtechnology.com
------------------------------------------------------------ "Nucleus. All You NEED in an RTOS. Royalty Free." ------------------------------------------------------------
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
Hi Steven, the problem of stableness was the issue we decided to drop ASP and go over to python/zope. PHP was never an issue because of its formerly lack of caching database access (you need this for example to realise batches) Not to mention the nightmare of much to much repeating code in each page. (Try to switch database connection for a whole PHP site and you know what I mean) this problem is also true with limitations to ASP. With a clever Zope setup you can have a very clean site which is easy to maintain and to develop. (Use ZClasses and products) HTH Tino Wildenhain Steven Grimes wrote:
I've been asked by my superiors to justify using Zope for our web database applications from a performance perspective. I've searched the web and tried to search the Zope site for any relevant performance benchmarks comparing Zope to languages such as ASP, PHP and JSP. Has anyone done any real world benchmarks?
Thanks, Steven Grimes Database Engineer sgrimes@atinucleus.com
Accelerated Technology, Inc. 720 Oak Circle Drive East Mobile, AL 36609 TEL: 334-661-5770 x2348 FAX: 334-661-5788 www.acceleratedtechnology.com
------------------------------------------------------------ "Nucleus. All You NEED in an RTOS. Royalty Free." ------------------------------------------------------------
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
participants (6)
-
Michael R. Bernstein -
Peter Bengtsson -
Samuel D. Gendler -
Steven Grimes -
Thomas B. Passin -
Tino Wildenhain