Thanks, I am worried because I am trying to optimize my app to be almost as fast as the php version.
usualy it takes 250ms for an ajax request(firebug) in the php version and 500ms in the python version so python is two times slower than the php version. but I guess it's because I have to store the files in the datastore and not in real directories. well thanks anyway. On 29 מאי, 04:32, David Wilson <[email protected]> wrote: > Just assume that any string/list/hash/integer-related operations in > Python are likely faster than you'll ever need them to be. The > overhead for buffering the response is going to be tiny regardless of > your application, since at most you're only talking about handling > strings of up to 10mb (which is the request size limit). > > If there is anything with AppEngine you need to be careful of, it is > use of Datastore, where reading/writing large numbers of entities will > cost a lot of performance. Reducing your Datastore use by a single > db.get() is equal to thousands of calls to self.response.out.write() > > $ python /usr/lib/python2.5/timeit.py -v -s 'from cStringIO import > StringIO; out = StringIO()' 'out.write("123")' > 10000 loops -> 0.00373 secs > 100000 loops -> 0.0383 secs > 1000000 loops -> 0.365 secs > raw times: 0.358 0.358 0.357 > 1000000 loops, best of 3: 0.357 usec per loop > > $ ae > Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12) > [GCC 4.0.1 (Apple Inc. build 5465)] on darwin > Type "help", "copyright", "credits" or "license" for more information. > (AppEngineShell)>>> import time > >>> t1 = time.time() ; db.get(db.Key.from_path('Foo', 1234)) ; print > >>> (time.time()-t1)*1000 > > 12.0000839233 > > David. > > 2009/5/29 Shedokan <[email protected]>: > > > > > > > > > Thanks, but does self.response.out affects speed very much? > > I couldn't benchmark it, strange... > > > On 28 מאי, 22:25, David Wilson <[email protected]> wrote: > >> Using self.response.out will also delay sending your entire response > >> until it is sure to succeed. > > >> If you start generating output using 'print', and then e.g. a > >> Datastore request times out, or a bug in your code is triggered, you > >> have no chance to display a friendly error message. Instead the user > >> will get a half-rendered page with a stack trace embedded in it, or > >> worse. > > >> David. > > >> 2009/5/28 Shedokan <[email protected]>: > > >> > so I can't print binary data like Images? > > >> > On 28 מאי, 21:03, 风笑雪 <[email protected]> wrote: > >> >> Print is also OK, but you need handle header by yourself, and it can > >> >> only > >> >> output > >> >> text.http://code.google.com/intl/en/appengine/docs/python/gettingstarted/h... > > >> >> print 'Content-Type: text/plain' > >> >> print '' > >> >> print 'Hello, world!' > > >> >> 2009/5/29 Shedokan <[email protected]> > > >> >> > I am wondering why should I use self.response.out.write and not print > >> >> > everything. > > >> >> > because I am making this app where I have to output from a lot > >> >> > ofdifferent functions and I am passing the object 'self' everywhere. > > >> >> > thanks. > > >> -- > >> It is better to be wrong than to be vague. > >> — Freeman Dyson > > -- > It is better to be wrong than to be vague. > — Freeman Dyson --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
