From: <web...@ap...> - 2003-10-06 00:49:55
|
I created an application based on Webware and Python. I was surprised why it works so slowly. So I decided to check how fast are different Python solutions against PHP. My hardware and software settings are: WindowsXP Pro, Athlon XP2800+, 512DDRdual, Python 3.3.2 stable Webware & WebKit & mod_webkit.dll CVS 2003-09-19 Cheetah CVS 2003-09-19 Spyce 3.11 vs. PHP 4.3.3 stable MMCache 2.4.1 For page request I used wget. My testing code is ============= import os, time url = [ r'http://localhost/WK/test/test1/testpython.py', r'http://localhost/WK/test/test1/testcheetah.tmpl', r'http://localhost/WK/test/test1/testcheetah.py', r'http://localhost/WK/test/test1/testpsp.psp', r'http://localhost/testphp.php', r'http://localhost/testspyce.spy', ] for u in url: t1=time.time() print '>>>%s' % u, os.system('wget -m %s -o stress.log' % u) t = time.time()-t1 print ' => time: %f s' % t testpython.py: =========== from WebKit.Page import Page class testpython(Page): def writeHTML(self): cpunter = 100 i=int(self.request().field('c', 0)) self.write('<p>Try: %d</p>' % i) if 0 < i <100: i += 1 self.write("<a href='http://%s?c=%d'>next</a>" %\ (self.request().serverURL(), i)) else: self.write("<a href='http://%s?c=1'>next</a>" %\ self.request().serverURL()) testcheetah.tmpl: ============= #set $counter = 100 #set $i=$int($request.field('c', 0)) <p>Try: $i</p> #if 0 < $i <$counter: <a href='http://${request.serverURL()}?c=${i+1}'>next</a> #else <a href='http://${request.serverURL()}?c=1'>next</a> #end if testpsp.psp: ========== <% counter = 100 i=int(req.field('c', 0)) res.write("<p>Try: %d</p>" % i) if 0 < i <counter: res.write("<a href='http://%s?c=%d'>next</a>" % (req.serverURL(), i+1)) else: res.write("<a href='http://%s?c=1'>next</a>" % req.serverURL()) %> testspyce.spy ========== <%\ counter = 100 i =request.get1('c', 0) %> <p>Try: <%=i%></p> <%if 0 < i < counter:{%> <%i += 1%> <a href='http://localhost<%=request.uri("path")%>?c=<%=i%>'>next</a> <%} else: {%> <a href='http://localhost<%=request.uri("path")%>?c=1'>next</a> <%}%> testphp.php: ========== <?php $counter = 100; $i =$_GET['c'] ? $_GET['c'] : 0; echo "<p>Try: $i</p>"; if ($i > 0 and $i < $counter) { $i += 1; echo "<a href='http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?c=$i'>next</a>"; } else { echo "<a href='http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?c=1'>next</a>"; } ?> RESULTS: ========= Webware servlet without templates: >>>http://localhost/WK/test/test1/testpython.py => time: 20.078000 s Webware servlet with its PSP templates >>>http://localhost/WK/test/test1/testpsp.psp => time: 20.015000 s Webware with Cheetah template/servlet: >>>http://localhost/WK/test/test1/testcheetah.tmpl => time: 20.235000 s Webware with Cheetah servlet (compiled with cheetah-compile script): >>>http://localhost/WK/test/test1/testcheetah.py => time: 20.250000 s PHP with mod_php4 and MMCache free accelerator >>>http://localhost/testphp.php => time: 3.891000 s [mcache & mod_php4] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PHP as CGI >>>http://localhost/testphp.php => time: 15.094000 s Spyce as CGI: >>>http://localhost/testspyce.spy => time: 53.672000 s (I coud not test Spyce and mod_python because mod_python 3.0.3 does not work with Python 2.3.2) What you think about it? PHP with MMCache accelerator is about 6x faster than teh fastest Python! I like Python but I am very disappointed its performance!!! :-((((( The difference is so huge, that I think about rewriting my Python code back to PHP.... Links: Python http://www.python.org/ Webware http://webware.sourceforge.net/ Cheetah http://www.cheetahtemplate.org/ Spyce http://spyce.sourceforge.net/ PHP http://www.php.net/ MMCache http://turck-mmcache.sourceforge.net/ -- JZ ICQ:6712522 |
From: <web...@ka...> - 2003-10-06 18:12:00
|
--> Sunday, October 5, 2003, 7:50:52 PM, web...@ap... wrote: > I created an application based on Webware and Python. I was surprised > why it works so slowly. So I decided to check how fast are different > Python solutions against PHP. What is MMCache first of all? It might be doing something Webware does not, something which would of course greatly improve performance, such as delivering static content it has deemed unnecessary to regenerate. That is not a comparison of Python and PHP, it is a comparison of have and have not. Now, about Python speed vs. PHP. Python is faster. PHP has less per transaction overhead. For small pages with low processing PHP can win. For pages with more complicated logic and processing Python can win. Python is a faster language. This is especially evident when developing a non-web application in PHP and Python. It is especially evident in the language shoot-out. Python is rather fast for what it is. I have benchmarks showing Webware overtake PHP after a certain amount of complexity. At the CPU non-intensive end of the spectrum however PHP's tiny per-transaction overhead beats a lot of platforms. PHP is written in C, Webware is written in Python. Furthermore, I have found in benchmarking, that Servlets curiously perform slower than a PSP page. I never found resolution, but I no longer use Servlets directly and instead inherit from them in PSP pages. I even consider this a cleaner development process. If someone wants to see my numbers on PHP, Spyce, Webware, CF, JSP, ASP, etc I can dig them up. I've been benchmarking every year or two for about 6 years. I've tried and discarded many platforms... and have recently moved to Webware, while still maintaining plenty of PHP and CF. -Kai P.S. Stop using so many ! and ?. It will help you. |
From: <web...@ap...> - 2003-10-06 23:55:38
|
W poniedziałek 6 października 2003 o godz. 20:52:53 web...@ka... <web...@ka...> napisał(a): > Yes, but it has the word 'Cache' in it's name. Which likely means it is > caching static files, No, not static files. MMCache increases performance of PHP scripts by caching them in *compiled state*. Look at http://turck-mmcache.sourceforge.net/#about > I know PSP are servlets. I do not like Cheetah syntax, it reminds me > of PHP. Are you kiddin'? Cheetah were inspired with Velocity and Webmacro, not PHP. I knot PHP very well and Cheetah do not resemble PHP at all. E.g. Cheetah does *not* use HTML/XML-style tags like PHP or PSP, DTML, ASP etc. It is because (1) HTML-style tags are not visible in rendered HTML when something goes wrong and (2) Cheetah can also output any other text format besides HTML. It means, Cheetah generates HTML, SGML, XML, SQL, Postscript, form email, LaTeX, or any other text-based format. It has also been used to produce Python, Java and PHP source code. Cheetah makes code reuse easy by providing an object-oriented interface to templates that is accessible from Python code or other Cheetah templates. One template can subclass another and selectively reimplement sections of it. A compiled template is a Python class, so it can subclass a pure Python class and vice-versa. Cheetah provides also a simple yet powerful caching mechanism. I think, Cheetah are easier to learn and use and are more powerfull than PSP. Look at http://www.cheetahtemplate.org/learn.html >> =========================================================== >> I found out that my problem is not due to performance of Python, but >> rather sth. is wrong with Webware. It works with fine performance >> but... sometimes it hangs for several seconds (it displays the page >> after 10-20 seconds) and I do not why. :( This behavior appears quite >> often but is is difficult to guess when because it appears from time >> to time (and it is confusing for our clients). But there is no special >> pages which reveals such behavior. The same pages works fast, and the >> same pages sometimes display after long delay. What do you think about >> it? For me it is strange. :( I have to solve it as soon as possible >> because, it is not approveable for our managment staff. >> =========================================================== > I have not experienced this and have developed benchmarking as well > as full legitimate applications. Perhaps your problem is not in > Webware. Are you using CVS? Perhaps the problem is in Apache or > Cheetah... Or perhaps the problem is in your configuration of the > systems together. Are you using mod_webkit? What strange things have > you done to the configurations? etc. Nothing strange is in my configuration. I am using CVS version of Webware and Cheetah. I am using mod_webkit as well. -- JZ ICQ:6712522 |
From: Mike O. <ms...@oz...> - 2003-10-07 05:41:12
|
On Tue, Oct 07, 2003 at 01:56:42AM +0200, Jaros?aw Zabie??o wrote: > W poniedzia?ek 6 pa?dziernika 2003 o godz. 20:52:53 > web...@ka... <web...@ka...> napisa?(a): > >> The same pages works fast, and the > >> same pages sometimes display after long delay. Could it be the delay is happening the first time a new section is hit, causing a time-consuming import? I'm having this at a site I'm working on, and the delay is 30 seconds or more. The solution here would be to pre-import the modules before the users notice. -- -Mike Orr (aka. Sluggo), ms...@oz... (ir...@se...) http://iron.cx/ English * Esperanto * Russkiy * Deutsch * Espan~ol |
From: JZ <pro...@mu...> - 2003-10-07 09:13:27
|
Hello Mike, Tuesday, October 7, 2003, 7:38:34 AM, you wrote: >> >> The same pages works fast, and the >> >> same pages sometimes display after long delay. > Could it be the delay is happening the first time a new section is > hit, causing a time-consuming import? I'm having this at a site I'm > working on, and the delay is 30 seconds or more. The solution here > would be to pre-import the modules before the users notice. Is it possible that I could get such effect for the same pages? I jump from page to page and during coming back (sometimes) I have to wait. I have max. nr of threads set to 100. Am I working always within the same WebKit thread? Maybe after jumping from servlet to servlet I use another thread (or more that one) and I have to download all modules from the beginning? My sevlets are no small. E.g. the main servlet (index.py) displays several different cheetah templates which depend on parsed URL value. -- JZ ICQ:6712522 |
From: Mike O. <ms...@oz...> - 2003-10-07 10:15:04
|
On Tue, Oct 07, 2003 at 11:13:21AM +0200, JZ wrote: > Hello Mike, > > Tuesday, October 7, 2003, 7:38:34 AM, you wrote: > > >> >> The same pages works fast, and the > >> >> same pages sometimes display after long delay. > > > Could it be the delay is happening the first time a new section is > > hit, causing a time-consuming import? I'm having this at a site I'm > > working on, and the delay is 30 seconds or more. The solution here > > would be to pre-import the modules before the users notice. > > Is it possible that I could get such effect for the same pages? I jump > from page to page and during coming back (sometimes) I have to wait. I > have max. nr of threads set to 100. Am I working always within the > same WebKit thread? Maybe after jumping from servlet to servlet I use > another thread (or more that one) and I have to download all modules > from the beginning? My sevlets are no small. E.g. the main servlet > (index.py) displays several different cheetah templates which depend > on parsed URL value. What I was describing would happen only when a user hits a new page -- in a section that has not been accessed since the AppServer was started. If you get a delay going back to the same page, it's something else. Imported modules (in fact, all data) are shared between threads -- that's the difference between a thread and a process. If two web requests (=transactions) are being processed simultaneously, they are in different threads. There are a couple non-thread ways to handle simultaneous requests (Apache/PHP use multiple processes; Twisted uses select()'s multiplexing capability), but Webware has chosen to use threads. -- -Mike Orr (aka. Sluggo), ms...@oz... (ir...@se...) http://iron.cx/ English * Esperanto * Russkiy * Deutsch * Espan~ol |
From: <web...@ap...> - 2003-10-11 14:49:57
|
W środa 8 października 2003 o godz. 05:41:41 web...@ka... <web...@ka...> napisał(a): >> I knot PHP very well and Cheetah do not resemble PHP at all. > > Yes it does resemble PHP. ... > The Cheetah syntax is anti-python. I am afraid you did not know what you were saying. Look at the following basic example for Cheetah, PSP and PHP: Cheetah: <html> <head><title>$title</title></head> <body> <table> #for $client in $service.clients <tr> <td>$client.surname, $client.firstname</td> <td><a href="mailto:$client.email" >$client.email</a></td> </tr> #end for </table> </body> </html> <!-- PSP: --> <html> <head><title><%=title%></title></head> <body> <table> <% for client in service.clients(): %> <tr> <td><%=client.surname()%>, <%=client.firstname()%></td> <td><a href="mailto:<%=client.email()%>"><%=client.email()%></a></td> </tr> <%end%> </table> </body> </html> <!-- PHP: --> <html> <head><title><?=$title?></title></head> <body> <table> <? for ($service->clients as $client) {?> <tr> <td><?=$client->surname()?>, <?=$client->firstname()?></td> <td><a href="mailto:<?=$client->email()?>"><?=$client->email()?></a></td> </tr> <?}?> </table> </body> </html> Which one more resemples PHP? :) I think you do not distinguish PSP as template system from Python as Webware servlet. When you wrote: > for author in authors: > self.write(author.person) > if author != authors[-1]: > self.write(', ') you meant pure Webware servlet, *not* PSP! PSP is a template system with all those awfull <%...%> tags (very similar to PHP, which was first invented as a template system only). I am using pure Python servlet code, but without this nonsens self.wite('html tags'). Python code should be used for business logic only. For writing HTML code you should use template system, not writing HTML code directly from Webware servlet with self.write() method. It is very poor idea. You do not understand the concept of separation logic from presentation layer. Cheetah is not limited (like PSP or PHP) to HTML. HTML-style tags are hard to distinguish from real HTML tags, HTML-style tags are not visible in rendered HTML when something goes wrong, HTML-style tags often lead to invalid HTML (e.g., <img src="<template-directive>">), Cheetah tags are less verbose and easier to understand than HTML-style tags, and HTML-style tags aren't compatible with most WYSIWYG editors. Cheetah is also more powerfull, because it has it's own simple yet powerfull caching system. PSP has nothing similar. > Sounds like servlets and server pages. Because Cheetah can works as independent servlet or can be used as a template system for Webware servlets. I prefer tha last one. BTW, I did some performance test of my Webware & Cheetah application versus PHP & Smarty. Webware is much more (event up to 6 times!) faster than PHP. :) -- JZ ICQ:6712522 |
From: <web...@ka...> - 2003-10-15 18:19:41
|
Stop replying to personal messages via the list, especially ones like these. This is ridiculous. --> Saturday, October 11, 2003, 9:51:34 AM, web...@ap... wrote: > W środa 8 października 2003 o godz. 05:41:41 > web...@ka... <web...@ka...> napisał(a): >>> I knot PHP very well and Cheetah do not resemble PHP at all. >> >> Yes it does resemble PHP. > ... >> The Cheetah syntax is anti-python. > I am afraid you did not know what you were saying. Look at the > following basic example for Cheetah, PSP and PHP: > Which one more resemples PHP? :) > I think you do not distinguish PSP as template system from Python as > Webware servlet. When you wrote: > method. It is very poor idea. You do not understand the concept of > separation logic from presentation layer. |
From: <web...@ap...> - 2003-10-15 19:34:37
|
W środa 15 października 2003 o godz. 20:18:08 web...@ka... <web...@ka...> napisał(a): > The code you included is not representative. Why? It *is* representative. PSP is not Python. It is obvious. You should first read what PSP really is: "A Python Server Page (or PSP) is an HTML document with interspersed Python instructions that are interpreted to generate dynamic content. PSP is analogous to PHP, Microsoft's ASP and Sun's JSP." ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ http://webware.sourceforge.net/Webware-0.8.1/PSP/Docs/index.html RTFM first, respond next. > Cheetah more resembles PHP than Python does. And PSP much more resembles PHP than Cheetah does. :) Cheetah is only a simple template language exactly like PSP. None of them is a full general purpose language like Python, Java, C+ etc. If you do not believe me, believe the PSP manual: "Features of PSP include: -Familiar Syntax (ASP, JSP, PHP)" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... "The general process for creating PSP files is similar to creating an HTML page. Simply create a standard HTML page, interspersed with the special PSP tags that your needs require" http://webware.sourceforge.net/Webware-0.8.1/PSP/Docs/UsersGuide.html >>> for author in authors: >>> self.write(author.person) >>> if author != authors[-1]: >>> self.write(', ') > No. The above code was PSP. No, it is the Python servlet. It migth have nothing to do with PSP and it's HTML'ed tags. PSP is a specific TEMPLATE language. Exactly like Cheetah, Webmacro, Smarty, etc. PSP is NOT Python. Python has no <%=blah%> syntax. I am using all the time the syntax you wrote for my serwlets. The difference is I do not use directly write('<html>...') because logic layer should not be mixed with presentation layer. You are using python servlets (OK, it's your choice) and you call them PSP (but they are *not* PSP, because PSP is a template language embeded in HTML). >> Cheetah is not limited (like PSP or PHP) to HTML. HTML-style tags >> are hard to distinguish from real HTML tags, HTML-style tags are >> not visible in rendered HTML when something goes wrong, HTML-style >> tags often lead to invalid HTML (e.g., <img >> src="<template-directive>">), Cheetah tags are less verbose and >> easier to understand than HTML-style tags, and HTML-style tags >> aren't compatible with most WYSIWYG editors. Cheetah is also more >> powerfull, because it has it's own simple yet powerfull caching >> system. PSP has nothing similar. > The Cheetah syntax is idiotic. Ha, ha, ha. Very persuasive reasoning. :D Where PSP with it's <%=blah%> is better? It has even worse documentation than Cheetah. PSP is very similar PHP (and Microsoft ASP!) syntax because PHP (and ASP!) can use tags <%...%>. -- JZ ICQ:6712522 |
From: JZ <web...@ap...> - 2003-10-16 19:15:51
|
This is a forwarded message From: web...@ka... <web...@ka...> To: web...@ap... Date: Thursday, October 16, 2003, 5:02:17 AM Subject: Webware vs. PHP - performance comparision! ===8<==============Original message text=============== Ok, that's it. This is hopefully the last e-mail I'll send you. I imagine you will get the point. But that might be wishful thinking. Future messages will receive an automated reply. --> Wednesday, October 15, 2003, 9:30:59 PM, web...@ap... wrote: > I was asking about something different. Why do you want to discuss on > priva instead of public list? Are you afraid? Why? So I can say things like this when you bust my balls one too many times... Yes I am fucking afraid of your incessant blathering. Big fuckin whoop! You stupid son of a bitch, we were fucking talking in fucking private about some shit off the list. You motherfucking mailed me privately, I fucking responded privately. We fucking conversed privately. Then your fucking punk ass started sending my shit to multiple mailing lists. You are a fucking jackoff, leave me the fuck alone and run your fucking shitty ass business you condescending prick. You have fucking psychological issues, go away! You're the fucking one who forgot what the fuck happened. Leave me the fuck alone fucko. > But PSP is not Python. PSP can only EMBED Python among HTML tags. > Exactly like Spyce does. No fuckin shit. Any fucking moron knows that. > Cheetah uses different approach because it was designed for webmasters > and non-programers. But Cheetah can easy extend not only from other > Cheetah templates, but also Python modules. So I cannot see any > advantage of PSP in that area. I don't give a fuck. This is PHP/Perl/SH-esque shit : #set sep = '' #for $author in $authors ${sep}${author.person}#slurp #set sep = ', ' #end for This is Python-esque non-shit : <% for author in authors: self.write(author.person) if author != authors[-1]: self.write(', ') %> You can't fucking argue with me out of the above. That's all I was saying and that's what you continually ignore. Take your fucking pills psycho. You are fucking arguing about shit you just came up with out of thin air. Leave me the fuck alone, go fucking work with your ultra-productive ass. > As I thought, you do not understand what Cheetah was designed for. It > do not need embed Python, because it can load Python modules and > inherit features of other Python modules. Cheetah is designed to work > as a presentation layer for non-programmers. PSP embeds Python code > emong HTM tags exactly like Spyce does. Spyce and PHP was based on > the same idea PHP was. Duh. STFU PHD. RTFM. SMFC. EAFD. GL HF KA DD. As I thought, you are a complete condescending cocksucking retard. (C.C.C.R.) >> As I already said in one of the first mails. I will never find the >> Cheetah syntax wonderful. I much prefer the PSP and Python syntax. > It's your choice. For me, using Cheetah can produce cleaner code with > cleaner separation logic and presentation layer. Thank you fucking god, thank you for fucking allowing me a fucking choice. Register your god damn copy of The Bat! you fucking scrub. You're the fucking idiot who blathers with multiple !!! and ??? about Python speed and related newbalescent bullshit. There are a million motherfuckers just like you. SHUT THE FUCK UP AND LEAVE ME THE FUCK ALONE DOUCHEBAG! -Kai, the photo guy Copyright 2003, kaishaku.org, don't steal my intellectual property. --------------------------------------------------------------------------- This is an email from kaishaku.org. Its contents are confidential to the intended recipient at the e-mail address to which it has been addressed. It may not be disclosed to or used by anyone other than this addressee, nor may it be copied in any way. If received in error, please contact kaishaku.org quoting the name of the sender and the addressee, then delete it from your system. Kaishaku.org reserves the right to monitor and archive all e-mails sent or received. --------------------------------------------------------------------------- ===8<===========End of original message text=========== No comments. This guy is a sick person. |
From: Chad W. <ch...@wo...> - 2003-10-19 18:02:11
|
On Thu, Oct 16, 2003 at 09:17:04PM +0200, JZ wrote: > This is a forwarded message > From: web...@ka... <web...@ka...> > To: web...@ap... > Date: Thursday, October 16, 2003, 5:02:17 AM > Subject: Webware vs. PHP - performance comparision! The forward was unnecessary, although it gives us a good insight into what NOT to do when responding to email, publicly or privately. -- Chad Walstrom <ch...@wo...> http://www.wookimus.net/ assert(expired(knowledge)); /* core dump */ |
From: Jamieson B. <ja...@ja...> - 2003-10-11 17:12:56
|
Can you post the results of your findings with Webware (mod_webkit?) vs=20 mod_php? Every benchmark I've seen shows mod_php killing mod_python and=20 I was considering moving back to php based on those tests. Jaros=B3aw Zabie=B3=B3o wrote: >W =B6roda 8 pa=BCdziernika 2003 o godz. 05:41:41 >web...@ka... <web...@ka...> napisa=B3(a)= : > > =20 > >>>I knot PHP very well and Cheetah do not resemble PHP at all. >>> =20 >>> >>Yes it does resemble PHP. >> =20 >> >... > =20 > >>The Cheetah syntax is anti-python. >> =20 >> > >I am afraid you did not know what you were saying. Look at the >following basic example for Cheetah, PSP and PHP: > >Cheetah: ><html> ><head><title>$title</title></head> ><body> > ><table> >#for $client in $service.clients ><tr> ><td>$client.surname, $client.firstname</td> ><td><a href=3D"mailto:$client.email" >$client.email</a></td> ></tr> >#end for ></table> > ></body> ></html> > ><!-- PSP: --> > ><html> ><head><title><%=3Dtitle%></title></head> ><body> > ><table> ><% for client in service.clients(): %> ><tr> ><td><%=3Dclient.surname()%>, <%=3Dclient.firstname()%></td> ><td><a href=3D"mailto:<%=3Dclient.email()%>"><%=3Dclient.email()%></a></= td> ></tr> ><%end%> ></table> > ></body> ></html> > ><!-- PHP: --> ><html> ><head><title><?=3D$title?></title></head> ><body> > ><table> ><? for ($service->clients as $client) {?> ><tr> ><td><?=3D$client->surname()?>, <?=3D$client->firstname()?></td> ><td><a href=3D"mailto:<?=3D$client->email()?>"><?=3D$client->email()?></= a></td> ></tr> ><?}?> ></table> > ></body> ></html> > >Which one more resemples PHP? :) > >I think you do not distinguish PSP as template system from Python as >Webware servlet. When you wrote: > > =20 > >>for author in authors: >> self.write(author.person) >> if author !=3D authors[-1]: >> self.write(', ') >> =20 >> > >you meant pure Webware servlet, *not* PSP! PSP is a template system >with all those awfull <%...%> tags (very similar to PHP, which was >first invented as a template system only). > >I am using pure Python servlet code, but without this nonsens >self.wite('html tags'). Python code should be used for business logic >only. For writing HTML code you should use template system, not >writing HTML code directly from Webware servlet with self.write() >method. It is very poor idea. You do not understand the concept of >separation logic from presentation layer. > >Cheetah is not limited (like PSP or PHP) to HTML. HTML-style tags are >hard to distinguish from real HTML tags, HTML-style tags are not >visible in rendered HTML when something goes wrong, HTML-style tags >often lead to invalid HTML (e.g., <img src=3D"<template-directive>">), >Cheetah tags are less verbose and easier to understand than HTML-style >tags, and HTML-style tags aren't compatible with most WYSIWYG editors. >Cheetah is also more powerfull, because it has it's own simple yet >powerfull caching system. PSP has nothing similar. > > =20 > >>Sounds like servlets and server pages. >> =20 >> > >Because Cheetah can works as independent servlet or can be used as a >template system for Webware servlets. I prefer tha last one. > >BTW, I did some performance test of my Webware & Cheetah application >versus PHP & Smarty. Webware is much more (event up to 6 times!) >faster than PHP. :) > > =20 > |
From: <web...@ap...> - 2003-10-11 20:25:37
|
W sobota 11 października 2003 o godz. 19:12:49 Jamieson Becker <ja...@ja...> napisał(a): > Can you post the results of your findings with Webware (mod_webkit?) > vs mod_php? See below. > Every benchmark I've seen shows mod_php killing mod_python and I was > considering moving back to php based on those tests. No! Don't do it. In the beginning, I had very bad performance not because Python was slow, but because my templates (Cheetah) was initialized in awake() method of Webware servlets. Later, I moved them to __init() method of each servlet. It helped a little, but it was not enough fast. When I moved them to external module (which is inherited by all my servlets) I gained the excelent performance. I was really surprised. It was even 20x faster than before. In the beginning, my memory was eaten up to 180 MB. Now it takes about 11 MB. I was working with PHP for many years. I was in development team od PHPLib and I know many tricks how to accelerate PHP. But, when I finally *correctly projected* Webware servlets, I was very suprised its good performance. It is far beyond PHP can reach. It is not only because Python is faster. It is mainly because Webware is the application server, and its servlets are compiled all the time in the memory. So I think, every application server (even writen in Java) can beat every non-trivial PHP application. PHP can be faster only for very simple code. But for more compilated code, when it have to load different modules and template files, Webware as application server is invincible. I did some comparision tests using ApacheBench http://codeflux.com/ab/ for my site and two others with similiar functions. (A) http://muratordom.pl/bank (Webware) vs. (B) http://www.pkt.pl/ (PHP) vs. (C) http://www.panoramafirm.com.pl/ (PHP) For max settings (25 request with concurrency level=5) the test for Webware (site A) was finished in 5.2 seconds. For site B in almost 30 s. and for site C in 13.4 s. The application A was 2.4 times faster than B and 5.7 times faster than C in total request time. Below there are more details: Benchmarking muratordom.pl (be patient)... Server Software: Apache/1.3.27 Server Hostname: muratordom.pl Server Port: 80 Document Path: /bank Document Length: 451 bytes Concurrency Level: 5 Time taken for tests: 5.211 seconds Complete requests: 25 Failed requests: 23 (Connect: 0, Length: 23, Exceptions: 0) Total transferred: 769491 bytes HTML transferred: 760063 bytes Requests per second: 4.80 Transfer rate: 147.67 kb/s received Connection Times (ms): min avg max Connect: 141 142 144 Processing: 764 884 950 Total: 905 1026 1094 Benchmarking www.pkt.pl (be patient)... Server Software: Apache/1.3.12 Server Hostname: www.pkt.pl Server Port: 80 Document Path: /index.php Document Length: 37769 bytes Concurrency Level: 5 Time taken for tests: 29.864 seconds Complete requests: 25 Failed requests: 15 (Connect: 0, Length: 15, Exceptions: 0) Total transferred: 964243 bytes HTML transferred: 957718 bytes Requests per second: 0.84 Transfer rate: 32.29 kb/s received Connection Times (ms): min avg max Connect: 146 164 218 Processing: 1206 5661 18639 Total: 1352 5825 18857 Benchmarking www.panoramafirm.com.pl (be patient)... Server Software: Apache Server Hostname: www.panoramafirm.com.pl Server Port: 80 Document Path: / Document Length: 61866 bytes Concurrency Level: 5 Time taken for tests: 13.451 seconds Complete requests: 25 Failed requests: 12 (Connect: 0, Length: 12, Exceptions: 0) Total transferred: 1638766 bytes HTML transferred: 1629318 bytes Requests per second: 1.86 Transfer rate: 121.83 kb/s received Connection Times (ms): min avg max Connect: 154 171 197 Processing: 1608 2248 3092 Total: 1762 2419 3289 I have also compared my application against another, very fast php_mod4 and Smarty based site (http://www.bizplace.pl). My Webware application (using much slower hardware and using many request from over 10 other projects, phpBB forums etc) has beaten modern, dedicated server with mod_php4 and compiled Smarty templates. In this situation Webware was still 20% faster. Python code combined with Cheetah is much cleaner and powerfull than every PHP code. Using Webware it is much faster than similiar PHP solutions. I am going to never go back to PHP again for non trivial projects. But I do not want to reject PHP, because it can be usefull for small projects or for such cute software as phpBB (http://www.phpbb.com). -- JZ ICQ:6712522 |
From: <web...@ka...> - 2003-10-15 18:24:12
|
--> Saturday, October 11, 2003, 12:12:49 PM, ja...@ja... wrote: > Can you post the results of your findings with Webware (mod_webkit?) vs > mod_php? Every benchmark I've seen shows mod_php killing mod_python and > I was considering moving back to php based on those tests. In my tests Python can beat PHP after a certain amount of complexity. PHP certainly wins in near-static pages and others with low overhead. I know this has been detailed before. Run some of your own benchmarks. -Tomi |
From: <web...@ka...> - 2003-10-15 22:29:07
|
--> Wednesday, October 15, 2003, 4:32:23 PM, ta...@re... wrote: > On Wednesday 15 October 2003 12:26, Jarosław Zabiełło wrote: >> RTFM first, respond next. > Please be civil. And please stop replying to personal messages via the list, especially ones like these. -Tomi |
From: <web...@ap...> - 2003-10-15 23:20:34
|
W czwartek 16 października 2003 o godz. 00:29:36 web...@ka... <web...@ka...> napisał(a): > And please stop replying to personal messages via the list, > especially ones like these. I thought you didn't press reply to all by mistake. Sorry. -- JZ ICQ:6712522 |
From: <web...@ka...> - 2003-10-15 23:04:14
|
--> Wednesday, October 15, 2003, 5:29:36 PM, web...@ka... wrote: -->> Wednesday, October 15, 2003, 4:32:23 PM, ta...@re... wrote: >> On Wednesday 15 October 2003 12:26, Jarosław Zabiełło wrote: >>> RTFM first, respond next. >> Please be civil. > And please stop replying to personal messages > via the list, especially ones like these. He's also replying to my personal mails on lists I'm not even on. It is also interesting he didn't start doing this until our personal conversation turned into some minute degree of disagreement. To me this seems underhanded. I am disappointed. Compare our history of posts. This doesn't seem like the best way for a CEO to show himself to the public. I am telling the list so everyone knows. I don't like how this looks. Put me in a spotlight for this and I will respond as above. -Tomi |
From: <web...@ap...> - 2003-10-15 23:27:50
|
W czwartek 16 października 2003 o godz. 01:04:44 web...@ka... <web...@ka...> napisał(a): > He's also replying to my personal mails on lists I'm not even on. I explained it in last mail. I did not see any reason why we cannot discuss about relation between python and template languages on the general mail-list. Those threads are also about Cheetah and can be interesting for Cheetah guys, so I crossposted them. -- JZ ICQ:6712522 |