On Wed, Jan 22, 2014 at 3:31 PM, Arnon Marcus <[email protected]> wrote:
> What I am interested in doing, is have it turned back into a datetime
object
> when 'decoding' - and THAT is not supported even in the web2py flavor -
and
> I haven't found a single simple solution for it on the web for the
standard
> simplejson either.
>
> I tried to hack it in the redis_cache.py (since I use redis for caching).
I
> added a function 'as_datetime' at the beginning of the file:
>
> def as_datetime(dct):
> if type(dct) is dict:
> Created = dct.get('Created', None)
> Modified = dct.get('Modified', None)
> if Created: dct['Created'] = datetime.datetime.strptime(Created,
> '%Y-%m-%d %H:%M:%S')
> if Modified: dct['Modified'] =
datetime.datetime.strptime(Modified,
> '%Y-%m-%d %H:%M:%S')
> return dct
>
> The problem I'm having is that this is all very 'taxing' on my
> caching-system - I am getting a slowdown of 40% on the entire
> cache-retrieval on each request, compared to leaving it as a string...
>
I believe the bottle neck is in the datetime.datetime.strptime function.
I attached some tests comparing some alternatives to your as_datetime
function
Here are my results running as_datetime.py bechmark script attached.
0 original Arnon version 0.854146957397
1 almost original 0.836435079575
2 isinstance 0.842170953751
3 strptime in globals 0.814795970917
4 simple parser (no strptime) 0.182478904724
5 regex parser (no strptime) 0.198482990265
6 cython simple parser (no strptime) 0.0408730506897
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
as_datetime.tar.gz
Description: GNU Zip compressed data

