def test_save(number): """ Сохранение JSON документа много раз. Документ: doc = {'Key1dsfdsf': {'Key2sdfsdfsdf':[1,2,3], 'Key3dfgfdgfdg':'New Year'}} """ res = [] for i in xrange(number): d = copy.deepcopy(doc) start = time.time() save(d) duration = time.time() - start friq = 1.0 / duration res.append((duration, friq)) print "Doc amount %d" % storage.entities.count() duration, friq = tuple([average(vals) for vals in zip(*res)]) return duration, friq
doc = copy.deepcopy(document) def test_find(filter): print filter start = time.time() d = find(filter) duration = time.time() - start friq = 1.0 / duration assert d is not None print len(d) # assert len(d) == 8 return duration, friq numbers = [100, 1000, 10000, 100000, 1000000, 4000000] for num in numbers: res = [] storage.entities.remove() for n in range(num): d = copy.deepcopy(doc) d['a']['c'] = {'d':[1,2,3], 'e':n} save(d) print 'Doc amount %d' % storage.entities.count() for i in range(3): res.append(test_find({'$and':[{'a.c.e':{'$gt': num/2 - 40},}, {'a.c.e':{'$lt': num/2 + 40}}]})) duration, friq = tuple([average(vals) for vals in zip(*res)]) print 'Test filter documents. Documents amount: %d; Duration: %f; Friquency: %f' %\ (num, duration, friq)