[manual] Use ujson instead of simplejson.

This saves something like 15ms on our 1000 message get_old_messages
queries, and will save even more when we start sending JSON dumps into
our memcached system.

We need to install python-ujson on servers and dev instances before
pushing this to prod.

(imported from commit 373690b7c056d00d2299a7588a33f025104bfbca)
This commit is contained in:
Tim Abbott
2013-06-18 17:55:55 -04:00
parent 678dd502ef
commit 222ef672b5
25 changed files with 120 additions and 119 deletions

View File

@@ -5,7 +5,7 @@ from django.core.management.base import BaseCommand
from zephyr.models import Realm, UserProfile, Message, UserMessage, \
get_user_profile_by_email
from zephyr.lib.timestamp import datetime_to_timestamp, timestamp_to_datetime
import simplejson
import ujson
def dump():
pointers = []
@@ -16,10 +16,10 @@ def dump():
pointers.append((u.email, datetime_to_timestamp(pub_date)))
else:
pointers.append((u.email, -1))
file("dumped-pointers", "w").write(simplejson.dumps(pointers) + "\n")
file("dumped-pointers", "w").write(ujson.dumps(pointers) + "\n")
def restore(change):
for (email, timestamp) in simplejson.loads(file("dumped-pointers").read()):
for (email, timestamp) in ujson.loads(file("dumped-pointers").read()):
try:
u = get_user_profile_by_email(email)
except UserProfile.DoesNotExist: