爲什麼此代碼需要0.32個CPU小時,並且具有24.6 MBytes的avreage內存? 頁面刷新大約30次,直到停止爲止,因爲不再有數據存儲實體。爲什麼此代碼如此CPU和內存密集?
class MainHandler(webapp.RequestHandler):
def get(self):
found = False
q = MyModel.all(keys_only=True).fetch(1000)
if len(q):
self.response.out.write("Deleted %d MyModel entries" % len(q))
found = True
db.delete(q)
q = MyModel2.all(keys_only=True).fetch(1000)
if len(q):
self.response.out.write("Deleted %d MoModel2 entries" % len(q))
found = True
db.delete(q)
if found:
self.response.out.write('<meta http-equiv="Refresh" content="0"/>')
def main():
application = webapp.WSGIApplication([('/', MainHandler)], debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
有什麼我可以做的,以加快它,並使用更少的內存?
謝謝
我不熟悉您使用的是'webapp'包,但你的WSGIApplication會是'MainHandler'而這裏顯示的代碼'ResetHandler'。他們是一樣的嗎? –
這是你幾乎可以肯定想要使用taskqueue鏈接而不是在Web瀏覽器中刷新的事情,但是,在App Engine中刪除是CPU密集型的。 – geoffspear
同意Wooble。另外,如果這不是預定的事情,而是手動調用的東西,則可以使用Datastore Admin刪除某種實體。 (只是一個指針,並不是說它在CPU時間方面會更便宜) –