graphql-python / graphql-python/graphql-core

Slow introspection query execution for large schemas

オープン
#101 コメント 6 件 リアクション 2 件 担当者 0 名 GitHub で見る
help wanted investigate optimization
主要言語
Python
スター
531
フォーク
146
PR マージ指標
30日以内にマージされた PR はありません

説明

The graphql-core `graphql_sync` function takes approximately 20x slower than a module that I wrote that solely executes the introspection query. https://github.com/kensho-technologies/graphql-compiler/blob/main/graphql_compiler/fast_introspection.py

With the graphql-core Python library, executing the default introspection query (outputted from `get_introspection_query`) on a schema of around ten thousand types with `graphql_sync` takes 26 seconds to run. Writing my own module that calls the same graphql-core Type resolvers executes the same query on the same schema in 1.37 seconds.

I'm not sure what exactly is the time sink with the graphql-core's approach, but it might have to do with the generality of `graphql_sync` and thus, computing the next field to resolve at every step, and also `graphql_sync`'s recursive nature. Interestingly, I ran the same query on the same schema using Graphql.js, and the execution took less than 2 seconds (around 1.7 seconds).

Thank you for your time and all the work to port GraphQL.js to Python!

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。