我试图找出python django项目中的时间差异。你知道吗
当我在shell中运行函数时,只需要大约一秒钟就可以得到返回对象并返回它。你知道吗
当我使用api调用运行它时,计时显示循环和序列化对象需要5秒以上的时间。你知道吗
以下是相关功能:
def serialize_particular(id=-1, all_available=False, page=0, maxOn=40):
if id != -1:
b = MyModel.objects.filter(id=id)
if len(b) == 0:
return []
else:
b = b[0]
data = []
if all_available:
oThings = b.things
else:
oThings = b.things_available
count = len(oThings)
start = maxOn * page
end = start + maxOn
if start > count:
oThings = oThings.filter(id=-1)
nextPage = -1
else:
if end > count:
end = count
page = -2
oThings = oThings[start:end]
nextPage = page + 1
for inv in oThings:
data.append({})
data[-1]['id'] = inv.id
data[-1]['available'] = inv.available
data[-1]['integer'] = inv.integer
data[-1]['subObject'] = {}
data[-1]['subObject']['name'] = inv.subObject.name
data[-1]['subObject']['category'] = inv.subObject.category
data[-1]['subObject']['subcategory'] = inv.subObject.subcategory
data[-1]['subObject']['listOfSubs'] = []
for subsub in inv.subObject.listOfSubs.all():
data[-1]['subObject']['listOfSubs'].append({})
data[-1]['subObject']['listOfSubs'][-1]['name'] = subsub.name
data[-1]['subObject']['listOfSubs'][-1]['category'] = subsub.category
data[-1]['subObject']['listOfSubs'][-1]['subcategory'] = subsub.subcategory
return data, nextPage
下面是我在服务器中使用的计时功能:
class Timing:
active = True
def __init__(self, text):
if self.active:
self.text = text
self.start = time.time()
def end(self):
if self.active:
self.end = time.time()
self.total = self.end - self.start
print("[%r] %2.6f s" %(self.text, self.total))
下面是我在服务器api调用中使用的相关代码:
T = Timing("API.things: Getting MyModel things")
s = serialize_particular(1, False, 0, 50000)
data = s[0]
nextPage = s[1]
T.end()
以下是服务器日志中的计时输出:
['API.things: Getting MyModel things'] 5.652001 s
下面是我的shell的输出:
>>> def t(id):
... T = Timing("API.things: Getting MyModel things")
... z = api.serialize_business_inventory(id, False, 0, 50000)
... T.end()
... return z
>>> s = t(1)
['API.things: Getting MyModel things'] 0.469001 s
有人知道为什么会这样吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐