如何解决大数据集的石墨烯-python性能问题
当前使用带有graphene-django(和graphene-django-optimizer)的graphene-python。
在收到GraphQL查询后,数据库查询在不到一秒钟的时间内成功完成;但是,石墨烯不会再发送响应10秒钟以上。如果我增加响应中发送的数据,则响应时间会线性增加(数据增加三倍=响应时间的三倍)。
要检索的数据由最多7层的嵌套对象组成,但是使用优化的查询,这不会影响从DB检索数据所花费的时间,因此我假设延迟与graphene-python将结果解析为GraphQL响应。
我不知道如何分析执行以确定花费了多长时间-在Django上运行cProfiler似乎并没有跟踪石墨烯的执行。
SQL查询响应时间是使用graphene-django-debugger中间件确定的,结果显示如下:
"_debug": {
"sql": [
{
"duration": 0.0016078948974609375,"isSlow": false,"rawSql": "SELECT SYSDATETIME()"
},{
"duration": 0.0014908313751220703,"rawSql": "SELECT [redacted]"
},{
"duration": 0.0014371871948242188,{
"duration": 0.001291036605834961,{
"duration": 0.0013201236724853516,{
"duration": 0.0015559196472167969,{
"duration": 0.0016672611236572266,{
"duration": 0.0014820098876953125,{
"duration": 0.0014810562133789062,{
"duration": 0.001667022705078125,{
"duration": 0.0014202594757080078,{
"duration": 0.0027959346771240234,{
"duration": 0.002704143524169922,{
"duration": 0.0030939579010009766,"rawSql": "SELECT [redacted]"
}
]
}
如果有人知道为什么石墨烯会花这么长时间来创建响应,或者可以帮助我分析石墨烯的执行情况,我将不胜感激!
解决方法
分析grahene执行开始的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。