使用 statprof 分析 Django 视图 - 不能在线程中使用信号
Posted
技术标签:
【中文标题】使用 statprof 分析 Django 视图 - 不能在线程中使用信号【英文标题】:Using statprof to profile a Django view - can not use signals in thread 【发布时间】:2012-05-25 06:36:08 【问题描述】:statprof 是 Python 的统计分析工具。文档说它只能用于分析主线程。因此,如果您使用它来分析在使用./manage.py runserver
时处理请求期间调用的某些函数,它会引发 ValueError: signal only works in main thread。
我看到了两种可能的方法来解决这个问题(除了从控制台调用函数,这是可能的,但不是那么方便):
1) 破解 statprof,使其不使用信号 - 但不清楚如何去做,或者是否有可能。
2) 让 runserver 命令运行主线程中的所有内容。
也许还有其他解决方案?有人在 django 视图中使用过 statprof 吗?
【问题讨论】:
【参考方案1】:如果您在使用 statprof 时执行./manage.py runserver --noreload
,它将在单线程中运行开发服务器并解决此问题。
【讨论】:
对我不起作用。但是,./manage.py --noreload --nothreading
可以。以上是关于使用 statprof 分析 Django 视图 - 不能在线程中使用信号的主要内容,如果未能解决你的问题,请参考以下文章