The App Engine team recently blogged about loading request performance in Java: http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html If your application has a steady stream of traffic, then loading requests are infrequent and should not contribute significantly to the cost of running your application.
I also tested loading request times using simple "Hello World" applications. Here are the times that I found in App Engine CPU ms: Python 85 Java 525 Clojure 2955 The Java and Clojure applications used precompilation..The source is available here: http://github.com/garyburd/app-eng-cold-start-test On Jan 18, 9:23 pm, Locke <[email protected]> wrote: > 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 > seehttp://code.google.com/appengine/docs/quotas.htmlfor 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
