Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve argument handling with Dataloader #3320

Merged
merged 13 commits into from
Feb 6, 2021
Merged

Conversation

rmosolgo
Copy link
Owner

@rmosolgo rmosolgo commented Feb 5, 2021

Rewrite argument loading to support dataloader usage, including in analyzers.

Fixes the known caveat about argument loading done in sequence
Fixes #3313
Fixes #3314

TODO:

@rmosolgo rmosolgo added this to the 1.12.4 milestone Feb 5, 2021
@rmosolgo
Copy link
Owner Author

rmosolgo commented Feb 6, 2021

Amazingly, performance-wise, this shows an improvement over master (~3.7% less memory, ~5% faster). (I ran the benchmarks on master which paralleled the results in #3312.) Here's the new benchmark result:

AFTER profile

Warming up --------------------------------------
      GraphQL::Batch    67.000  i/100ms
 GraphQL::Dataloader    77.000  i/100ms
         No Batching    90.000  i/100ms
Calculating -------------------------------------
      GraphQL::Batch    679.283  (± 1.6%) i/s -      3.417k in   5.031639s
 GraphQL::Dataloader    769.545  (± 2.5%) i/s -      3.850k in   5.006314s
         No Batching    899.261  (± 1.3%) i/s -      4.500k in   5.004964s

Comparison:
         No Batching:      899.3 i/s
 GraphQL::Dataloader:      769.5 i/s - 1.17x  (± 0.00) slower
      GraphQL::Batch:      679.3 i/s - 1.32x  (± 0.00) slower

========== GraphQL-Batch Memory ==============
Total allocated: 84784 bytes (965 objects)
Total retained:  200 bytes (5 objects)

allocated memory by gem
-----------------------------------
     76704  graphql-ruby/lib
      5632  graphql-batch-0.4.3
      1040  promise.rb-0.7.4
       752  other
       656  set

allocated memory by file
-----------------------------------
     33632  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
      5424  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb
      4640  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/lazy.rb
      4520  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
      3424  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
      3168  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
      2312  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
      2152  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
      2032  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
      1960  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
      1472  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
      1344  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
      1296  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
      1088  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
       992  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
       976  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
       912  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
       856  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
       800  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb
       704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
       696  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
       672  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
       656  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
       600  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
       456  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
       416  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
       368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
       328  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
       240  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise/group.rb
       240  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
       208  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/executor.rb
       168  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb
       160  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
       160  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
       120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb

allocated memory by location
-----------------------------------
      4704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
      4640  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/lazy.rb:30
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
      4368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
      3392  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
      3384  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
      3360  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:485
      3360  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:496
      2520  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:7
      1760  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:29
      1600  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:488
      1368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
      1008  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
       880  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:34
       864  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
       800  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:17
       752  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
       640  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
       560  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb:49
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
       488  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
       480  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:21
       480  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb:25
       480  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:109
       448  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:50
       416  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:49
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb:150
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1695
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb:288
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:125
       376  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1661
       360  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
       352  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb:27
       336  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:94
       336  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:122
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb:192
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:43
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:79
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:81
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb:76
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb:21
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1586
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:712

allocated memory by class
-----------------------------------
     47248  Hash
     20688  Array
      8000  Proc
      2080  GraphQL::Execution::Lazy
       952  Enumerator
       688  Promise
       560  BatchLoading::GraphQLBatchSchema::Team
       504  GraphQL::StaticValidation::FieldsWillMerge::Field
       480  BatchLoading::GraphQLBatchSchema::Player
       296  GraphQL::Query
       272  GraphQL::StaticValidation::InterpreterVisitor
       240  Promise::Group
       240  String
       160  BatchLoading::GraphQLBatchSchema::DataLoader
       160  GraphQL::Execution::Interpreter::Arguments
       160  GraphQL::Query::InputValidationResult
       160  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
       136  GraphQL::Query::Context
       136  GraphQL::Query::ValidationPipeline
       128  GraphQL::Schema::Warden
       120  GraphQL::Execution::Interpreter::Runtime
       120  GraphQL::Filter
        88  GraphQL::Execution::Multiplex
        80  GraphQL::Execution::Interpreter::ArgumentValue
        80  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
        80  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
        80  GraphQL::StaticValidation::ValidationContext
        80  Range
        80  Set
        72  GraphQL::Query::Variables
        72  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
        72  GraphQL::StaticValidation::LiteralValidator
        72  Method
        40  BatchLoading::GraphQLBatchSchema::Query
        40  GraphQL::Batch::Executor
        40  GraphQL::Dataloader::NullDataloader
        40  GraphQL::Execution::Interpreter
        40  GraphQL::Execution::Interpreter::ArgumentsCache
        40  GraphQL::Execution::Interpreter::HashResponse
        40  GraphQL::Filter::MergedOnly
        40  GraphQL::Language::Printer
        40  GraphQL::Query::Result
        40  GraphQL::StaticValidation::Validator

allocated objects by gem
-----------------------------------
       821  graphql-ruby/lib
       106  graphql-batch-0.4.3
        26  promise.rb-0.7.4
         6  other
         6  set

allocated objects by file
-----------------------------------
       224  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
       104  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb
        85  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
        58  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/lazy.rb
        37  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
        36  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
        36  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
        33  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
        25  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
        22  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
        20  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
        18  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
        17  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
        11  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
        10  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise/group.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
         4  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
         2  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/executor.rb
         2  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb

allocated objects by location
-----------------------------------
        58  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/lazy.rb:30
        45  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:7
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
        26  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
        24  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
        20  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:17
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:485
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:488
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:496
        16  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
        14  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
        12  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:21
        12  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb:25
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
         9  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
         8  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:50
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:309
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:327
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:37
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb:7
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:317
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:19
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:22
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:24
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:25
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:55
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise/group.rb:30
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:34
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:389
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:109
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:29
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1694
         4  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:327
         4  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb:153
         4  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/promise.rb-0.7.4/lib/promise.rb:194
         4  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:49
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb:87

allocated objects by class
-----------------------------------
       424  Array
       300  Hash
       100  Proc
        26  GraphQL::Execution::Lazy
        14  BatchLoading::GraphQLBatchSchema::Team
        14  Promise
        12  BatchLoading::GraphQLBatchSchema::Player
         7  Enumerator
         7  GraphQL::StaticValidation::FieldsWillMerge::Field
         6  Promise::Group
         6  String
         4  GraphQL::Execution::Interpreter::Arguments
         4  GraphQL::Query::InputValidationResult
         4  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
         3  GraphQL::Filter
         2  BatchLoading::GraphQLBatchSchema::DataLoader
         2  GraphQL::Execution::Interpreter::ArgumentValue
         2  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
         2  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
         2  Range
         2  Set
         1  BatchLoading::GraphQLBatchSchema::Query
         1  GraphQL::Batch::Executor
         1  GraphQL::Dataloader::NullDataloader
         1  GraphQL::Execution::Interpreter
         1  GraphQL::Execution::Interpreter::ArgumentsCache
         1  GraphQL::Execution::Interpreter::HashResponse
         1  GraphQL::Execution::Interpreter::Runtime
         1  GraphQL::Execution::Multiplex
         1  GraphQL::Filter::MergedOnly
         1  GraphQL::Language::Printer
         1  GraphQL::Query
         1  GraphQL::Query::Context
         1  GraphQL::Query::Result
         1  GraphQL::Query::ValidationPipeline
         1  GraphQL::Query::Variables
         1  GraphQL::Schema::Warden
         1  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
         1  GraphQL::StaticValidation::InterpreterVisitor
         1  GraphQL::StaticValidation::LiteralValidator
         1  GraphQL::StaticValidation::ValidationContext
         1  GraphQL::StaticValidation::Validator
         1  Method

retained memory by gem
-----------------------------------
       120  graphql-ruby/lib
        80  graphql-batch-0.4.3

retained memory by file
-----------------------------------
       120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
        80  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb

retained memory by location
-----------------------------------
        80  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

retained memory by class
-----------------------------------
       200  String

retained objects by gem
-----------------------------------
         3  graphql-ruby/lib
         2  graphql-batch-0.4.3

retained objects by file
-----------------------------------
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
         2  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb

retained objects by location
-----------------------------------
         2  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

retained objects by class
-----------------------------------
         5  String


Allocated String Report
-----------------------------------
         2  "... TeamFields"
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143

         1  "3"
         1  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48

         1  "5"
         1  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48

         1  "fragment TeamFields"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

         1  "query"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75


Retained String Report
-----------------------------------
         1  "... TeamFields"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143

         1  "3"
         1  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48

         1  "5"
         1  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/graphql-batch-0.4.3/lib/graphql/batch/loader.rb:48

         1  "fragment TeamFields"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

         1  "query"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75

========== Dataloader Memory =================
Total allocated: 87672 bytes (844 objects)
Total retained:  0 bytes (0 objects)

allocated memory by gem
-----------------------------------
     83880  graphql-ruby/lib
      1792  other
      1344  concurrent-ruby-1.1.7
       656  set

allocated memory by file
-----------------------------------
     28192  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
     16904  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
      4520  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
      3808  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
      2728  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
      2312  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
      2152  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
      2032  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
      1472  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
      1456  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
      1408  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb
      1344  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.7/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb
      1344  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
      1296  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
      1120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
      1088  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
      1072  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
       976  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
       856  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
       832  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
       704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
       696  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
       672  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
       656  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
       600  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
       456  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
       368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
       328  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
       240  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
       168  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb
       160  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
       120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/nodes.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/find_inherited_value.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_types_exist.rb

allocated memory by location
-----------------------------------
      6760  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:107
      4704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
      4368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
      4056  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:200
      3392  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
      3384  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
      2880  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:64
      1760  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:29
      1728  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:47
      1368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
      1344  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.7/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb:22
      1344  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:166
      1344  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:580
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
      1008  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
       944  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
       864  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
       640  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
       560  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb:49
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:31
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
       488  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
       480  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:86
       416  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:96
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb:150
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1695
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb:288
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:125
       384  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:120
       376  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1661
       360  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
       352  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb:27
       336  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:94
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb:199
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb:13
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:43
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:79
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:81
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb:76
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb:21
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1586
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:712
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:107

allocated memory by class
-----------------------------------
     45600  Hash
     19312  Array
     10176  Fiber
      6800  Proc
       952  Enumerator
       560  BatchLoading::GraphQLDataloaderSchema::Team
       504  GraphQL::StaticValidation::FieldsWillMerge::Field
       480  BatchLoading::GraphQLDataloaderSchema::Player
       296  GraphQL::Query
       272  GraphQL::StaticValidation::InterpreterVisitor
       240  String
       160  GraphQL::Execution::Interpreter::Arguments
       160  GraphQL::Query::InputValidationResult
       160  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
       144  BatchLoading::GraphQLDataloaderSchema::DataSource
       136  GraphQL::Query::Context
       136  GraphQL::Query::ValidationPipeline
       128  GraphQL::Schema::Warden
       120  GraphQL::Execution::Interpreter::Runtime
       120  GraphQL::Filter
        88  GraphQL::Execution::Multiplex
        80  GraphQL::Execution::Interpreter::ArgumentValue
        80  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
        80  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
        80  GraphQL::StaticValidation::ValidationContext
        80  Range
        80  Set
        72  GraphQL::Query::Variables
        72  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
        72  GraphQL::StaticValidation::LiteralValidator
        72  Method
        40  BatchLoading::GraphQLDataloaderSchema::Query
        40  GraphQL::Dataloader
        40  GraphQL::Execution::Interpreter
        40  GraphQL::Execution::Interpreter::ArgumentsCache
        40  GraphQL::Execution::Interpreter::HashResponse
        40  GraphQL::Filter::MergedOnly
        40  GraphQL::Language::Printer
        40  GraphQL::Query::Result
        40  GraphQL::StaticValidation::Validator

allocated objects by gem
-----------------------------------
       804  graphql-ruby/lib
        28  other
         6  concurrent-ruby-1.1.7
         6  set

allocated objects by file
-----------------------------------
       178  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
        85  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
        37  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
        36  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
        31  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
        26  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
        22  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
        18  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
        17  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
        11  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.7/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
         2  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/nodes.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/find_inherited_value.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_types_exist.rb

allocated objects by location
-----------------------------------
        36  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:64
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
        26  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
        24  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
        16  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
        14  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
        12  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:86
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
        10  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:107
         9  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:47
         9  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:309
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:327
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:37
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:580
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb:7
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:317
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:19
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:22
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:24
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.7/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb:22
         6  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:77
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:200
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb:55
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:166
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:389
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1694
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:29
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
         4  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:327
         4  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:96
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb:87
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb:31
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb:17
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1612
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1695
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb:288
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:125

allocated objects by class
-----------------------------------
       388  Array
       269  Hash
        85  Proc
        14  BatchLoading::GraphQLDataloaderSchema::Team
        12  BatchLoading::GraphQLDataloaderSchema::Player
         8  Fiber
         7  Enumerator
         7  GraphQL::StaticValidation::FieldsWillMerge::Field
         6  String
         4  GraphQL::Execution::Interpreter::Arguments
         4  GraphQL::Query::InputValidationResult
         4  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
         3  GraphQL::Filter
         2  BatchLoading::GraphQLDataloaderSchema::DataSource
         2  GraphQL::Execution::Interpreter::ArgumentValue
         2  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
         2  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
         2  Range
         2  Set
         1  BatchLoading::GraphQLDataloaderSchema::Query
         1  GraphQL::Dataloader
         1  GraphQL::Execution::Interpreter
         1  GraphQL::Execution::Interpreter::ArgumentsCache
         1  GraphQL::Execution::Interpreter::HashResponse
         1  GraphQL::Execution::Interpreter::Runtime
         1  GraphQL::Execution::Multiplex
         1  GraphQL::Filter::MergedOnly
         1  GraphQL::Language::Printer
         1  GraphQL::Query
         1  GraphQL::Query::Context
         1  GraphQL::Query::Result
         1  GraphQL::Query::ValidationPipeline
         1  GraphQL::Query::Variables
         1  GraphQL::Schema::Warden
         1  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
         1  GraphQL::StaticValidation::InterpreterVisitor
         1  GraphQL::StaticValidation::LiteralValidator
         1  GraphQL::StaticValidation::ValidationContext
         1  GraphQL::StaticValidation::Validator
         1  Method

retained memory by gem
-----------------------------------
NO DATA

retained memory by file
-----------------------------------
NO DATA

retained memory by location
-----------------------------------
NO DATA

retained memory by class
-----------------------------------
NO DATA

retained objects by gem
-----------------------------------
NO DATA

retained objects by file
-----------------------------------
NO DATA

retained objects by location
-----------------------------------
NO DATA

retained objects by class
-----------------------------------
NO DATA


Allocated String Report
-----------------------------------
         2  "... TeamFields"
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143

         1  "3"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb:87

         1  "5"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader/source.rb:87

         1  "fragment TeamFields"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

         1  "query"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75

========== No Batch Memory ==============
Total allocated: 63856 bytes (707 objects)
Total retained:  0 bytes (0 objects)

allocated memory by gem
-----------------------------------
     62624  graphql-ruby/lib
       656  set
       576  other

allocated memory by file
-----------------------------------
     25312  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
      4520  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
      3424  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
      2728  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
      2312  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
      2152  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
      2032  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
      1472  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
      1344  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
      1296  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
      1120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
      1088  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
      1072  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
       992  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
       976  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
       856  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
       704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
       696  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
       672  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
       656  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
       600  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
       456  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
       368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
       328  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
       280  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
       240  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
       240  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
       168  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb
       160  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
       160  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
       120  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
        80  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/nodes.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/find_inherited_value.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_types_exist.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragments_are_finite.rb
        40  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb

allocated memory by location
-----------------------------------
      4704  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
      4536  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
      4368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
      3392  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
      3384  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
      1760  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:29
      1368  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
      1080  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
      1008  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
       952  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
       864  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
       752  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
       640  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
       576  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
       560  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb:49
       504  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
       496  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
       488  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb:150
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1695
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb:288
       416  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:125
       376  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1661
       360  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
       352  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb:27
       336  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:94
       336  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb:206
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:43
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:79
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb:81
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb:76
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb:21
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1586
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:712
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:107
       336  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb:29
       328  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:87
       328  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:29
       320  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:327
       320  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1694
       320  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:309
       320  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:327
       320  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:37
       304  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb:433
       304  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb:93
       296  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb:382
       288  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb:70

allocated memory by class
-----------------------------------
     38128  Hash
     16808  Array
      3360  Proc
       952  Enumerator
       560  BatchLoading::GraphQLNoBatchingSchema::Team
       504  GraphQL::StaticValidation::FieldsWillMerge::Field
       480  BatchLoading::GraphQLNoBatchingSchema::Player
       296  GraphQL::Query
       272  GraphQL::StaticValidation::InterpreterVisitor
       160  GraphQL::Execution::Interpreter::Arguments
       160  GraphQL::Query::InputValidationResult
       160  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
       160  String
       136  GraphQL::Query::Context
       136  GraphQL::Query::ValidationPipeline
       128  GraphQL::Schema::Warden
       120  GraphQL::Execution::Interpreter::Runtime
       120  GraphQL::Filter
        88  GraphQL::Execution::Multiplex
        80  GraphQL::Execution::Interpreter::ArgumentValue
        80  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
        80  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
        80  GraphQL::StaticValidation::ValidationContext
        80  Range
        80  Set
        72  GraphQL::Query::Variables
        72  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
        72  GraphQL::StaticValidation::LiteralValidator
        72  Method
        40  BatchLoading::GraphQLNoBatchingSchema::Query
        40  GraphQL::Dataloader::NullDataloader
        40  GraphQL::Execution::Interpreter
        40  GraphQL::Execution::Interpreter::ArgumentsCache
        40  GraphQL::Execution::Interpreter::HashResponse
        40  GraphQL::Filter::MergedOnly
        40  GraphQL::Language::Printer
        40  GraphQL::Query::Result
        40  GraphQL::StaticValidation::Validator

allocated objects by gem
-----------------------------------
       693  graphql-ruby/lib
         8  other
         6  set

allocated objects by file
-----------------------------------
       164  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb
        85  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb
        37  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb
        36  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb
        31  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb
        25  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb
        22  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query.rb
        20  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
        18  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
        17  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb
        11  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb
        10  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments.rb
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validation_context.rb
         6  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb
         6  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/literal_validator.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/operation_names_are_valid.rb
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/validator.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/arguments_cache.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/directives_are_defined.rb
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_names_are_unique.rb
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/dataloader.rb
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/validation_pipeline.rb
         2  /Users/rmosolgo/code/graphql-ruby/benchmark/run.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/instrumentation.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/variables.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/scalar.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/no_definitions_are_present.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/argument.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/hash_response.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/nodes.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/find_inherited_value.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_types_exist.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragments_are_finite.rb
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb

allocated objects by location
-----------------------------------
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:181
        28  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:271
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/resolve.rb:38
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:638
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:79
        27  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/object.rb:61
        26  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:381
        24  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/warden.rb:270
        16  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:307
        15  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:308
        14  /Users/rmosolgo/code/graphql-ruby/lib/graphql/language/visitor.rb:125
        12  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:396
         9  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:21
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:309
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:327
         8  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:37
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb:7
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:317
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:318
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:19
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:20
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:22
         7  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/required_arguments_are_present.rb:24
         6  /Users/rmosolgo/code/graphql-ruby/benchmark/batch_loading.rb:112
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:389
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1694
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:753
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:29
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/argument_names_are_unique.rb:20
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb:21
         6  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:28
         5  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/interpreter/runtime.rb:33
         4  /Users/rmosolgo/.rbenv/versions/2.7.2/lib/ruby/2.7.0/set.rb:327
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/analysis/ast.rb:87
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/filter.rb:17
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1612
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1695
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/argument.rb:288
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/member/has_arguments.rb:125
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:130
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:59
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:87
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/arguments_are_defined.rb:67
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/fields_will_merge.rb:60
         4  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb:29
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/execution/multiplex.rb:49
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/query/context.rb:150
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema.rb:1661
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:15
         3  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/definition_dependencies.rb:153

allocated objects by class
-----------------------------------
       343  Array
       232  Hash
        42  Proc
        14  BatchLoading::GraphQLNoBatchingSchema::Team
        12  BatchLoading::GraphQLNoBatchingSchema::Player
         7  Enumerator
         7  GraphQL::StaticValidation::FieldsWillMerge::Field
         4  GraphQL::Execution::Interpreter::Arguments
         4  GraphQL::Query::InputValidationResult
         4  GraphQL::StaticValidation::DefinitionDependencies::NodeWithPath
         4  String
         3  GraphQL::Filter
         2  GraphQL::Execution::Interpreter::ArgumentValue
         2  GraphQL::StaticValidation::FieldsWillMerge::FragmentSpread
         2  GraphQL::StaticValidation::FragmentSpreadsArePossible::FragmentSpread
         2  Range
         2  Set
         1  BatchLoading::GraphQLNoBatchingSchema::Query
         1  GraphQL::Dataloader::NullDataloader
         1  GraphQL::Execution::Interpreter
         1  GraphQL::Execution::Interpreter::ArgumentsCache
         1  GraphQL::Execution::Interpreter::HashResponse
         1  GraphQL::Execution::Interpreter::Runtime
         1  GraphQL::Execution::Multiplex
         1  GraphQL::Filter::MergedOnly
         1  GraphQL::Language::Printer
         1  GraphQL::Query
         1  GraphQL::Query::Context
         1  GraphQL::Query::Result
         1  GraphQL::Query::ValidationPipeline
         1  GraphQL::Query::Variables
         1  GraphQL::Schema::Warden
         1  GraphQL::StaticValidation::DefinitionDependencies::DependencyMap
         1  GraphQL::StaticValidation::InterpreterVisitor
         1  GraphQL::StaticValidation::LiteralValidator
         1  GraphQL::StaticValidation::ValidationContext
         1  GraphQL::StaticValidation::Validator
         1  Method

retained memory by gem
-----------------------------------
NO DATA

retained memory by file
-----------------------------------
NO DATA

retained memory by location
-----------------------------------
NO DATA

retained memory by class
-----------------------------------
NO DATA

retained objects by gem
-----------------------------------
NO DATA

retained objects by file
-----------------------------------
NO DATA

retained objects by location
-----------------------------------
NO DATA

retained objects by class
-----------------------------------
NO DATA


Allocated String Report
-----------------------------------
         2  "... TeamFields"
         2  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:143

         1  "fragment TeamFields"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:83

         1  "query"
         1  /Users/rmosolgo/code/graphql-ruby/lib/graphql/static_validation/base_visitor.rb:75

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sometime returns GraphQL::Execution::Lazy instance Dataloader yield from root fiber with graphql-metrics
1 participant