![](/img/trans.png)
[英]Why GridSearchCV spends more than 50% time on {method 'acquire' of 'thread.lock' objects}?
[英]Acquire Thread.Lock takes 50% of response time in Google App Engine running Python 2.7
我在GAE上使用python27,并希望减少应用程序的响应时间。
根据cProfile的说法,运行1.6M函数调用(似乎非常高)需要40秒钟(显然太长)。 我现在唯一能找到的线索是,“ {{thread.lock'object的method'acquire'acquire'}}”占了40多岁中的20岁。 (注意:在app.yaml中将threadsafe设置为false或true似乎没有太大影响。)
对我要去哪里或接下来要去哪里调查有任何想法吗? 我知道获取锁定所花费的大量时间可能只是症状而不是原因,但如果是这样,我如何找到根本原因? 在cProfile中为我的函数列出的所有其他时间和ncall似乎是合理的。
我还想知道这是否是由于GAE在2011年底使用2.7造成的性能问题:
作为参考,这是cProfile输出示例(删除了行):
Profile data:
1662549 function calls (1652247 primitive calls) in 39.545 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
[lines removed]
10816 19.245 0.002 19.245 0.002 {method 'acquire' of 'thread.lock' objects}
[lines removed]
预先感谢您提供的任何帮助!
如果您的应用程序非常注重RPC(长时间调用数据存储区/ urlfetch / etc),那么您会发现在thread.lock.acquire()中花费了大量时间。
您可能需要在应用程序中启用AppStats ,并查看每个rpc需要多长时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.