<?php namespace GraphQL\Benchmarks; use GraphQL\GraphQL; use GraphQL\Tests\StarWarsSchema; use GraphQL\Type\Introspection; /** * @BeforeMethods({"setIntroQuery"}) * @OutputTimeUnit("milliseconds", precision=3) * @Warmup(2) * @Revs(10) * @Iterations(2) */ class StarWarsBench { private $introQuery; public function setIntroQuery() { $this->introQuery = Introspection::getIntrospectionQuery(); } public function benchSchema() { StarWarsSchema::build(); } public function benchHeroQuery() { $q = ' query HeroNameQuery { hero { name } } '; GraphQL::execute( StarWarsSchema::build(), $q ); } public function benchNestedQuery() { $q = ' query NestedQuery { hero { name friends { name appearsIn friends { name } } } } '; GraphQL::execute( StarWarsSchema::build(), $q ); } public function benchQueryWithFragment() { $q = ' query UseFragment { luke: human(id: "1000") { ...HumanFragment } leia: human(id: "1003") { ...HumanFragment } } fragment HumanFragment on Human { name homePlanet } '; GraphQL::execute( StarWarsSchema::build(), $q ); } public function benchStarWarsIntrospectionQuery() { GraphQL::execute( StarWarsSchema::build(), $this->introQuery ); } }