Thanks Marzia,

I've put some logging and seems yes - spikes happens when new instance
is starting.

I've noticed Django helper installation takes solid amount of time and
I guess CPU.

See log extract:

# 12-11 10:42AM 27.040 - Loading django helper...
# 12-11 10:42AM 27.862 - Successfully loaded the Google App Engine
Helper for Django.

I know GAE was providing Django 0.96.

Is it providing Django 1.0 and appengine_django helper now (on server
side)?

If yes, would it fire up the cold starts if I exclude local version of
Django & appengine_django?

I have not found any news regarding updates of GAE production from
Django 0.96 to release 1.0

I think it would be interesting to many developers.
--
Alex
http://sharp-developer.net/


On Dec 8, 7:26 pm, Marzia Niccolai <[email protected]> wrote:
> Hi Alex,
>
> Does your script load up a lot of modules when it starts?  It's possible
> that these are the CPU warnings you are seeing.  You may be seeing them
> inconsistently since this would only happen when a new interpreter for your
> script is fired up.  The basic process is described 
> here:http://code.google.com/appengine/docs/python/appcaching.html
>
> -Marzia
>
> On Sat, Dec 6, 2008 at 9:30 AM, Sharp-Developer.Net <
>
> [email protected]> wrote:
>
> > Hi,
>
> > I've enabled complete page content caching and surprisingly see high
> > CPU for requests that utilize the memcache with a single call to the
> > memcache.
>
> > As you could see from log & code below there are just single call to
> > memcache and a call to users.get_current_user()
>
> > I have a Django middleware handler as well. But as I understand it
> > should work on every request and it's fairly simple - doing
> > configuration basing on request parameters - no DB calls.
>
> > Any thouts on reason of such a big difference in numbers?
> > --
> > Alex
> >http://sharp-developer.net/
>
> > Example from log:
> > ===========================================================
> >   1. 12-06 09:11AM 17.294 / 200 1097ms 3725mcycles 27kb
> >      86.41.125.175 - - [06/12/2008:09:11:18 -0800] "GET / HTTP/1.1"
> > 200 27103 - -
>
> >   2. D 12-06 09:11AM 18.388
> >      Page taken from MEMCACHE by key: page5/
>
> > --------------------------------------------------------------------------------------------------------------------
> > what strange is that sometimes I get very good results for the same
> > request:
>
> > --------------------------------------------------------------------------------------------------------------------
> >   1. 12-06 09:22AM 40.639 / 200 15ms 14mcycles 27kb
> >      86.41.125.175 - - [06/12/2008:09:22:40 -0800] "GET / HTTP/1.1"
> > 200 27103 - -
>
> >   2. D 12-06 09:22AM 40.650
> >      Page taken from MEMCACHE by key: page5/
> > ===========================================================
>
> > where code for caching is:
>
> > ====================
> > @cache.memorize_page()
> > def index(request):
> >    # some code here
> >    return render_to_response('root_index.html',
> >                                  payload,
> >                                  context_instance=RequestContext
> > (request))
> > def memorize_page(name=None, time=60*60*12):
> >    def memorize_fn(fn):
> >        def new_fn(*a, **kw):
> >            request = a[0]
> >            # We are caching whole page just for GET requests
> >            if request.method != "GET":
> >                return fn(*a, **kw)
> >            prefix = "page5"
> >            key = "%s%s" % (prefix, request.path)
> >            user = get_current_user()
> >            if user:
> >                key = "u=%s/%s" % (user.key(), key)
> >            if request.GET.has_key("cache") and request.GET["cache"]
> > == "reset":
> >                memcache.delete(key)
> >                LOG.debug("Page delete from MEMCACHE by key: %s", key)
> >            else:
> >                response_content = memcache.get(key)
> >                if response_content is not None:
> >                    LOG.debug("Page taken from MEMCACHE by key: %s",
> > key)
> >                    return HttpResponse(content=response_content)
> >                    #return res
>
> >            res = fn(*a, **kw)
> >            memcache.set(key, res.content, time=time)
> >            LOG.debug("Page stored to MEMCACHE with key: %s" % key)
> >            return res
> >        return new_fn
> >    return memorize_fn
> > ----------------------------------------
> > def get_current_user():
> >    guser = users.get_current_user()
> >    if not guser:
> >        return None
> >    #my code here for authorized users
> >    # in cache use case we work with unauthorized request
> > ====================
>
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to