我試圖優化我的代碼,並且遇到了一個我不太明白的問題。在我的網絡應用程序的每個頁面上,都會有一個類似於Facebook新報價的通知列表。因此,在每次請求,我在beggining運行這段代碼:爲什麼我的RPC總數增加了?
notification_query = db.Query(Ticker, keys_only=True)\
.filter('friends =',self.current_user.key().name())
self._notifications_future = notification_query.run()
然後,在我找到一個好去處,我調用中間函數是:
notification_keys = [future.parent() for future in self._notifications_future]
self._notifications = db.get_async(notification_keys)
最後我取他們所有結尾:
context.update({'notifications': self._notifications.get_result() })
每一件事情的作品,除了這個偉大的:如果我調用請求的功能結束,中間的功能,我得到這個:
阿呆現貨
,如果我把它在我認爲是一個優化的地方,我得到這個:
智能現貨
正如你所看到的通過進行這種「優化」,API使用量翻了一番。這裏發生了什麼?
電話號碼2是這兩種情況下的第一個片段。在啞點中的呼叫號碼12是第二個片段,並且智能點中的呼叫號碼12是第二個片段。這最後一個開關,與問題無關,我測試過了。
pd:谷歌收取我的時間查詢是「閒置」?
UPDATE
這個問題似乎只是在dev_server,當我試圖在Appspot上相同的例子(智能版),我得到這個:
查詢上Appspot上
這裏的一切都按預期工作,所調用的東西run()或get_async()不要阻止其他的東西。正如我所說的問題只在dev_server。儘管如此,我們仍然很高興看到這個特性可以在localhost上工作,以獲得更有效的分析。
你的代碼和你學習,對吧? – fceruti
嗯。對我來說,我認爲序列是類似代碼的東西,然後編碼一些,然後詛咒,然後將我的頭靠在牆上,然後調試,然後編碼一些,然後學習一點點:) –