Skip to content

Instantly share code, notes, and snippets.

@simonklee
Created March 18, 2014 22:14
Show Gist options
  • Save simonklee/9630934 to your computer and use it in GitHub Desktop.
Save simonklee/9630934 to your computer and use it in GitHub Desktop.
measure inter
#!/usr/bin/env python
import time
import redis
import random
c = redis.StrictRedis()
for online in ("online-10000", "online-50000", "online-100000"):
c.delete(online)
for friends in ("friends-100", "friends-500", "friends-1000", "friends-10000"):
c.delete(friends)
for i in xrange(0, 100000):
if i < 10000:
c.sadd("online-10000", i)
if i < 50000:
c.sadd("online-50000", i)
c.sadd("online-100000", i)
for i in xrange(0, 10000):
n = random.randint(0, 1000000)
if i < 100:
c.sadd("friends-100", n)
if i < 500:
c.sadd("friends-500", n)
if i < 1000:
c.sadd("friends-1000", n)
c.sadd("friends-10000", n)
def measure(online, friends):
m = []
res = []
for i in range(7):
t = time.time()
res = c.sinter(online, friends)
m.append(time.time() - t)
print "online: %s, friends: %s" % (online, friends)
print " %2.4f sec, %2.4f sec, %2.4f sec" % (min(m), max(m), sum(m)/7.0)
print "len %d" % len(res)
print ""
for online in ("online-10000", "online-50000", "online-100000"):
for friends in ("friends-100", "friends-500", "friends-1000", "friends-10000"):
measure(online, friends)
print ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment