どこからともなく奇妙なオーバーヘッドが発生しています。Python スクリプトを実行し、SQLAlchemy を使用していくつかの SQL クエリを作成しています。これが私の問題です:
def _create_connection(name):
connection = get_connection(name)
cstring = "mysql+mysqldb://login:passwd@host/database?charset=utf8"
return create_engine(cstring)
def _get_table(engine, table):
metadata = MetaData(engine)
return Table(table, metadata, autoload=True)
class A(object):
def requests_statuses(self, user_id):
friendship_request_t = _get_table(self._db, "friendship_request")
user_t = _get_table(self._db, "user")
a = datetime.now()
s = select([user_t.c.user_id, friendship_request_t.c.status],
from_obj=[friendship_request_t.join(
user_t,
friendship_request_t.c.user_id_a==user_t.c.user_id)]).\
where(friendship_request_t.c.user_id_b==bindparam('fr_user_id_b'))
results = self._db.execute(s, fr_user_id_b=user_id).fetchall()
b = datetime.now()
print "interval: " + unicode(b - a)
return results
class B(object):
def friend_requests_statuses(self):
a_obj = A()
print "begin: " + unicode(datetime.now())
results = a_obj.requests_statuses(self.id)
print "end : " + unicode(datetime.now())
このプログラムを実行すると:
b_obj = B()
b.friend_requests_statuses()
私はこの出力を持っています:
begin: 2013-02-07 18:57:40.058834
interval: 0:00:00.001852
end : 2013-02-07 18:57:40.076525
16ms のオーバーヘッドがあります。SQL クエリの実行には 1.8 ミリ秒しかかかりませんでした。
誰か助けてくれませんか?
A.requests_statuses メソッドを終了するときのガベージ コレクションから「オーバーヘッド」が発生する可能性はありますか?