126 lines
2.1 KiB
Rust
126 lines
2.1 KiB
Rust
|
use test::Bencher;
|
||
|
|
||
|
use std::collections::{HashMap};
|
||
|
|
||
|
use schema::model::RootNode;
|
||
|
use tests::model::Database;
|
||
|
|
||
|
#[bench]
|
||
|
fn query_type_name(b: &mut Bencher) {
|
||
|
let database = Database::new();
|
||
|
let schema = RootNode::new(&database, ());
|
||
|
|
||
|
let doc = r#"
|
||
|
query IntrospectionQueryTypeQuery {
|
||
|
__schema {
|
||
|
queryType {
|
||
|
name
|
||
|
}
|
||
|
}
|
||
|
}"#;
|
||
|
|
||
|
b.iter(|| ::execute(doc, None, &schema, &HashMap::new(), &database));
|
||
|
}
|
||
|
|
||
|
#[bench]
|
||
|
fn introspection_query(b: &mut Bencher) {
|
||
|
let database = Database::new();
|
||
|
let schema = RootNode::new(&database, ());
|
||
|
|
||
|
let doc = r#"
|
||
|
query IntrospectionQuery {
|
||
|
__schema {
|
||
|
queryType { name }
|
||
|
mutationType { name }
|
||
|
subscriptionType { name }
|
||
|
types {
|
||
|
...FullType
|
||
|
}
|
||
|
directives {
|
||
|
name
|
||
|
description
|
||
|
locations
|
||
|
args {
|
||
|
...InputValue
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fragment FullType on __Type {
|
||
|
kind
|
||
|
name
|
||
|
description
|
||
|
fields(includeDeprecated: true) {
|
||
|
name
|
||
|
description
|
||
|
args {
|
||
|
...InputValue
|
||
|
}
|
||
|
type {
|
||
|
...TypeRef
|
||
|
}
|
||
|
isDeprecated
|
||
|
deprecationReason
|
||
|
}
|
||
|
inputFields {
|
||
|
...InputValue
|
||
|
}
|
||
|
interfaces {
|
||
|
...TypeRef
|
||
|
}
|
||
|
enumValues(includeDeprecated: true) {
|
||
|
name
|
||
|
description
|
||
|
isDeprecated
|
||
|
deprecationReason
|
||
|
}
|
||
|
possibleTypes {
|
||
|
...TypeRef
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fragment InputValue on __InputValue {
|
||
|
name
|
||
|
description
|
||
|
type { ...TypeRef }
|
||
|
defaultValue
|
||
|
}
|
||
|
|
||
|
fragment TypeRef on __Type {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
ofType {
|
||
|
kind
|
||
|
name
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
"#;
|
||
|
|
||
|
b.iter(|| ::execute(doc, None, &schema, &HashMap::new(), &database));
|
||
|
}
|