I'm currently assessing Google App Engine, and one of the answers from Hidden limitations of Google App Engine? stated:
Performance will surprise you. GAE is optimized for many tiny queries and you get warned if a query takes any CPU time at all. You get 6.5 (at last check) free hours per day, but it's a mystical number and you should test.
You'll find that time as you measure it doesn't relate to the CPU or datastore CPU time, because (for example) under the covers there might be multiple machines updating indexes during deletes/updates. Some users have found huge CPU usage when uploading bulk data - many hours of usage for e.g. 20 min of real time.
Your Java instance might need to be powered-up if it hasn't been hit in (I think) 20 minutes. The benefit is that they can pass their smart management on to you as cheaper costs, but it does mean you'll experience a short delay, and see a high CPU warning on the first request in a while.
For many cases, Python datastore access is faster than Java JDO. You'll likely find that using the low-level API for Java faster.
Some developers seem to have experienced more datastore errors thank you would expect (around 0.4-1% maybe?). I haven't yet.
I'm wondering what factors go into determining a PaaS's CPU time (like, in this case, the 6.5 hours free that you get with GAE). For example, does it include the total time it takes for the database to transfer data over to the client?
Do the costs under this model increase dramatically as you get more users?