1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import testbase
import types
from sqlalchemy import *
from sqlalchemy.orm import *
from testlib import *
NUM = 250000
class SaveTest(AssertMixin):
def setUpAll(self):
global items, metadata
metadata = MetaData(testbase.db)
items = Table('items', metadata,
Column('item_id', Integer, primary_key=True),
Column('value', String(100)))
items.create()
def tearDownAll(self):
clear_mappers()
metadata.drop_all()
def testsave(self):
class Item(object):pass
m = mapper(Item, items)
for x in range(0,NUM/50):
sess = create_session()
query = sess.query(Item)
for y in range (0,50):
# print "x,y", (x,y)
sess.save(Item())
sess.flush()
#self._profile()
print "ROWS:", x * 50
def _profile(self):
print "------------------------"
d = {}
for o in gc.get_objects():
t = type(o)
if t is types.InstanceType:
t = o.__class__
d.setdefault(t, 0)
d[t] += 1
rep = [(key, value) for key, value in d.iteritems()]
def sorter(a, b):
return cmp(b[1], a[1])
rep.sort(sorter)
for x in rep[0:30]:
print x
if __name__ == "__main__":
testbase.main()
|