加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 为什么我的RPC总数上升了?

发布时间:2020-12-16 22:13:53 所属栏目:Python 来源:网络整理
导读:我正在尝试优化我的代码,我遇到了一个我不太明白的问题.在我的网络应用程序的每个页面上,都会有一个通知列表,就像Facebook新的自动收报机一样.因此,在每个请求中,我在开始运行此代码: notification_query = db.Query(Ticker,keys_only=True) .filter('frie

我正在尝试优化我的代码,我遇到了一个我不太明白的问题.在我的网络应用程序的每个页面上,都会有一个通知列表,就像Facebook新的自动收报机一样.因此,在每个请求中,我在开始运行此代码:

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:google是否会向我收取查询“空闲”的时间?

UPDATE

问题似乎只是在dev_server中,当我在appspot上尝试相同的例子(智能版)时,我得到了这个:

appspot上的查询

这里的一切都按预期工作,用run()或get_async()调用的东西不会阻止其他东西.正如我所说,问题只出在dev_server中.仍然很高兴看到这个功能在localhost上运行,以便进行更有效的分析.

最佳答案
AHHHH.当发布有关应用程序引擎时,如果您的结果位于开发服务器或生产环境中,则非常有用.开发服务器与生产服务器的性能特征不同,因此它不是分析应用程序的最佳方式.实际上,我认为根本没有使用索引,并且dev服务器是单线程的,因此您无法使用它来处理并发请求.事实上,如果你的应用程序调用自己,it won’t work at all!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读