That did it. I had read a similar post later in the group.

I was using tables = cache.ram('tables',lambda:load(),10**10)

will modify it now. Is there any difference between using
session.tables and just tables when its cached in RAM ?


On Oct 27, 7:40 pm, mdipierro <[email protected]> wrote:
> In a model:
>
> def load():
>     """
>     Load the file into memory and message the number of entries
>     """
>     f = open('tables.pkl','rb')
>     tables = pickle.load(f)
>     f.close()
>     return tables
>
> session.tables=cache.ram('tables',load,None)
>
> and it will be cached in ram for all users.
>
> On Oct 27, 5:15 am, siddharth <[email protected]> wrote:
>
> > I am loading a pickled dictionary into memory. I need it to be
> > available to all users all the time. It needs to be loaded only once
> > at application startup.
> > I wrote the following code and put it in models directory
>
> > code: load_table.py
>
> >     import cPickle as pickle
> >     """
> >     Load the file into memory and message the number of entries
> >     """
> >     f = open('tables.pkl','rb')
> >     session.tables = pickle.load(f)
> >     f.close()
> >     terms = len(tables.keys())
>
> > This made the 'table' variable available globally to all functions in
> > the controller. I was initially using a very small table. Now that the
> > table size has increased, it is taking a long time to query it. Almost
> > equal to loading it each time. How can I speed this up.
>
> > Should I load it in index() and access via session.table (global)
>
>

Reply via email to