One question -- are you defining a main() function? If not, your entire app may be reloaded each time. Try putting logging statements (or prints to sys.stderr) at the top-level of your module, and check in the logs for these -- they should only be logged for the first request. If they are logged for each request, then somehow your main is being reloaded each time.
On Jan 7, 4:39 pm, Anthony <[email protected]> wrote: > It looks like the info in the logs could be down to the whole page > processing, but very simple pages (no db) consistently taking 500ms+ > Ill give it a try without the zipimport. > > I'm just using the loader cache from the cookbook (removed the > bytecode cache), jinja works great, although I did need to force > caching off in dev or the internal caches do not update after template > changes... > > import config > import os > import sys > from google.appengine.api import memcache > > sys.path.insert(0, 'lib/jinja2.zip') > from jinja2 import Environment, FunctionLoader , TemplateNotFound > > def jinja2_template_loader(templatename): > templatepath = os.path.abspath(os.curdir+'/templates/'+templatename) > template = memcache.get(templatepath+config.VERSION) > if template is None: > try: > template = file(templatepath).read() > if config.LIVE: > > memcache.set(templatepath+config.VERSION,template) > except: > template = None > return template > > if config.LIVE: > jinja2_environment = Environment(loader = FunctionLoader > (jinja2_template_loader),cache_size=50) > else: > jinja2_environment = Environment(loader = FunctionLoader > (jinja2_template_loader),cache_size=0) > > def render(template_name,context): > template = jinja2_environment.get_template(template_name) > context["stats"]="LIVE:" +str(config.LIVE) + " DEBUG:" +str > (config.DEBUG) > return template.render(context) > > On Jan 7, 7:39 pm, "Rodrigo Moraes" <[email protected]> wrote: > > > On Wed, Jan 7, 2009 at 2:16 PM, Anthony wrote: > > > Is it normal for the zipimporter to take 500-1000ms every request - > > > should it be caching internally? > > > > I'm importing like so: > > > > # templates.py > > > sys.path.insert(0, 'lib/jinja2.zip') > > > from jinja2 import Environment, FunctionLoader , TemplateNotFound , > > > MemcachedBytecodeCache > > > > Will it still be caching if im not importing the zip dircetly in the > > > main.py? > > > Not an answer to your question (which I'd like to know :), just a > > warning: you won't be able to use MemcachedBytecodeCache from Jinja2, > > because bytecode usage is not allowed in App Engine. > > > The example using MemcachedBytecodeCache in the App Engine Cookbook > > only works in the dev server, not in production. :-/ > > > Apart from this, Jinja2 implementation is very smooth. :) > > > -- rodrigo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
