Out of curiosity, I decided to implement "hello world" in the two official, and one unofficial, languages that run on AppEngine. These apps make no use of the datastore or any services. They just print "hello world."
The methodology was simply to run the app three times, waiting for about a minute for AppEngine to unload my app between each request. All times are in "wall time." Google typically bills you for "CPU time," which is greater than wall time. The units are seconds. --- jruby + rack: 15.5 18.0 13.8 average: 15.8 seconds --- python + google's "webapp" micro-framework: 0.127 0.170 0.079 average: .0.125 seconds --- java: 0.911 !! canceled after 10 seconds with "Request was aborted after waiting too long to attempt to service your request." !! 2.4 4.2 average: 2.5 seconds not counting the fatal error In all three cases, the apps respond in about one tenth those times if they were already loaded. And yes, Java performance is all over the map! My simple "hello world" java app was killed by AppEngine. It was merely running the template code that came with the java SDK. My test shows that Python on AppEngine is excellent--some of the fastest web app execution I've seen on any host anywhere. AppEngine's Java support, on the other hand, should very much be considered a "preview release" product. When "hello world" is killed by AppEngine for taking too long to respond, you know there are some major problems to work out. Bot both java and jruby, once loaded, run at quite acceptable speeds. Unfortunately, they are reloaded after mere seconds without hits, and those reloads can sporadically end in 500s. Based on these numbers, I would not enable billing or AppEngine Java, nor would I use it for "production" applications at this time. But AppEngine Java hasn't been around nearly as long as the Python version, so perhaps this is understandable. (the java crash error follows) 01-18 08:50PM 42.121 /helloappengine 500 10085ms 0cpu_ms 0kb Mozilla/ 5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729),gzip(gfe) [myip] - - [18/Jan/2010:20:50:52 -0800] "GET /helloappengine HTTP/1.1" 500 0 - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729),gzip(gfe)" "[myapp]" W 01-18 08:50PM 52.206 Request was aborted after waiting too long to attempt to service your request. Most likely, this indicates that you have reached your simultaneous dynamic request limit. This is almost always due to excessively high latency in your app. Please see http://code.google.com/appengine/docs/quotas.html for more details.
-- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.