views:

35

answers:

1

I'm developing on Google App Engine. I am using WingIDE (a python IDE) to debug on the development server. I have several thousand entities in my datastore and I can see that when the development server starts up, it has to go through DatastoreFileStub.Read() and do something which each entity.

The problem is, when I run the development server through WingIDE it runs horrendously slow. I put some profiling logging code into the google app engine to take a peak.

When I run the development server on the command line, I get the following message:

Finished reading 10374 Entites in 10.17 seconds, 1019 per second

When I run the development server through WingIDE however, I get this:

Finished reading 10374 Entites in 52.44 seconds, 197 per second

Anyone have an idea why WingIDE would be 5 times slower?

A: 

Probably because you've got a debugger hooked up - debuggers slow code down a lot by instrumenting everything, and deserializing your datastore is a lot of work.

Using the --use_sqlite flag will enable an experimental sqlite-based local datastore, which should require less startup time. Note that it'll require you to wipe your datastore when you switch to it, however.

Nick Johnson