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 -~----------~----~----~----~------~----~------~--~---
