On Sun, Jun 17, 2012 at 5:00 AM, Richard Watson <[email protected]> wrote: > I have a strong suspicion that disk access with many files is an issue. > Have you made any effort to package your classes as a jar file?
I have the same suspicion. I have done tests in the past (packaging it up by hand) and found about a 20% improvement in startup time. It was significant but not enough to justify the effort of hacking this into the deployment process. Of course, my project has grown since then, so maybe it's time to revisit this. My biggest concern is that even if I cut my startup time in half (which I suspect is optimistic), I'm still going to be at the mercy of a blip in GAE. The startup time varies by a factor of 3 even when GAE is in "normal" state. This variability is very hard to work with, especially since (from comments on this list) I suspect sub-20s java instance startups are difficult to attain in real-world projects. Another problem is that this variance makes testing hard since I have to do statistical measurement of startup time. It's hard to know if changes have a real affect or are just a quirk of getting deployed to a faster/slower part of the cluster. I guess I have three specific complaints right now (completely independent from specific techniques to make my app faster): 1) Startup time should not vary this much. If HRD latency varied by a factor of 3, someone would probably sound an alarm. Whatever datasource classes are being loaded from should be more consistent (assuming that's the problem). 2) The deadline for startup requests is too short. In pharmacology, one measure of the safety of drugs is the Therapeutic Index - basically, the ratio of the amount that will kill you divided by the amount that you need for an effective dose. For alcohol, it's about 10:1. If typical startup time is 20s, then the Therapeutic Index for GAE is 3:1 - waaaaay too close, especially considering that startup times seem to vary by a factor of 3 normally. 3) Google, we really need more transparency on this issue. We have a lot of people speculating and doing trial-and-error experiments, but not much in the way of official guidance. We shouldn't need to guess what will work and what won't - please tell us what's going on, why does a process that takes 3s on my local box take 60s+ in production? If we understand the underlying mechanism, we can (hopefully) design around it. Thanks, Jeff -- 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.
