I am pretty sure that the GQL you quoted cannot actually be executed, but I haven't used it in a long while, so perhaps they added some fancy features (or maybe it is more 'secret code'). I also very rarely find datastore gets to take over 100ms (even queries are generally faster than that).
Obviously, caching is good. Obviously, concurrency is good (although the thread limitations on GAE put a practical cap on concurrency). I agree that most people probably don't take enough advantage of the Task Queue to defer and decompose work. It generally results in apps that are extremely well suited to the performance characteristics of App Engine. On Tuesday, August 7, 2012 9:38:29 PM UTC-4, Jeff Schnitzer wrote: > > On Mon, Aug 6, 2012 at 2:41 PM, Drake <[email protected] <javascript:>> > wrote: > > So here are more generalizations for APP Engine: > > > > Cache Everything: > > Your CPU is slow, when profiling weigh the CPU to the memory cost and > speed > > for things which you calculate often. It is surprising that even simple > > stuff denormalized can be so much faster than the complex operation. > > GetByID("Sales-and-Shipping-AZ-1599-1lb") takes less than 3 MS out of > > Instance memory cache served from a dedicated backend, 10ms from > memcache > > 120ms from data store. You can't do the 4 lookups and the calculation > that > > fast. So Don't. Remember all your "Complex business rules" are > cacheable. > > Anything worth doing is worth caching :-) > > These numbers are nothing like my past experimental results, so I ran > them again. Here's appstats for a calls from a F1 to a B1 that does > nothing but return the string "noop": > > https://img.skitch.com/20120808-nn749683wqdg5516fy732k71iw.jpg > > Clicking on those links shows that 99% of the time is spent waiting on > urlfetch to the backend. > > * The _minimum_ fetch time to a backend is 12ms. > > * Maybe 10% of calls are >250ms, and a very significant portion exceed > 500ms. > > * I also tried this with a B8. No material difference > (https://img.skitch.com/20120808-gerejtgfd958i691hsiw897wjw.jpg) > > My experience with memcache is that most requests come back in 2ms or > less, but there are rare outliers in the 100ms or 200ms range. Much, > much better behaved. > > BTW this was with zero contention (ab -c 1 -n 50). > > Conclusion: Backends suck. > > Jeff > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/FsTSLhvFAO8J. 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.
