<#19053 Unexpectedly high pantsd memory usage with...
# github-notifications
c
#19053 Unexpectedly high pantsd memory usage with Go Issue created by jyggen We have a relatively small amount of Go code in our monorepository (49 files and 8041 lines according to
pants count-loc
, compared to 879 files and 101251 lines Python), and yet when enabling the Go backend we need to bump
pantsd_max_memory_usage
from the default value up to at least
8GiB
in order to make pantsd not restart on every Pants execution (though it still restarts frequently enough for our Python developers to simply disable the Go backend locally due to the performance degradation it causes). Here's the memory summary after running
pants --stats-memory-summary fix lint check test golang/::
on 2.16.0rc2: ``` 123416.78 [INFO] Memory summary (total size in bytes, count, name): 48 1 abc.EnvironmentAware 48 1 abc.EnvironmentAware 48 1 pants.backend.codegen.protobuf.go.rules.ProtobufGoModuleImportPathsMappingsHook 48 1 pants.backend.codegen.protobuf.go.rules._SetupGoProtocPlugin 48 1 pants.backend.codegen.protobuf.lint.buf.subsystem.BufSubsystem 48 1 pants.backend.codegen.protobuf.protobuf_dependency_inference.ProtobufMapping 48 1 pants.backend.codegen.protobuf.protoc.Protoc 48 1 pants.backend.codegen.protobuf.python.python_protobuf_module_mapper.PythonProtobufMappingMarker 48 1 pants.backend.codegen.protobuf.python.python_protobuf_subsystem.PythonProtobufSubsystem 48 1 pants.backend.docker.lint.hadolint.subsystem.Hadolint 48 1 pants.backend.docker.subsystems.dockerfile_parser.DockerfileParser 48 1 pants.backend.docker.subsystems.dockerfile_parser.ParserSetup 48 1 pants.backend.go.dependency_inference.AllGoModuleImportPathsMappings 48 1 pants.backend.go.dependency_inference.GoModuleImportPathsMapping 48 1 pants.backend.go.goals.check.GoCheckRequest 48 1 pants.backend.go.lint.gofmt.subsystem.GofmtSubsystem 48 1 pants.backend.go.subsystems.golang.GolangSubsystem 48 1 pants.backend.go.subsystems.golang.GolangSubsystem.EnvironmentAware 48 1 pants.backend.go.subsystems.gotest.GoTestSubsystem 48 1 pants.backend.go.target_type_rules.FirstPartyGoModuleImportPathsMappingsHook 48 1 pants.backend.go.target_type_rules.GenerateTargetsFromGoModRequest 48 1 pants.backend.go.target_type_rules.GoImportPathMappingRequest 48 1 pants.backend.go.util_rules.build_pkg.SetupAsmCheckBinary 48 1 pants.backend.go.util_rules.build_pkg_target._ResolveStdlibEmbedConfigRequest 48 1 pants.backend.go.util_rules.build_pkg_target._ResolveStdlibEmbedConfigResult 48 1 pants.backend.go.util_rules.cgo.CGoCompilerWrapperScript 48 1 pants.backend.go.util_rules.cgo.CGoCompilerWrapperScriptRequest 48 1 pants.backend.go.util_rules.cgo_binaries.CGoBinaryPathRequest 48 1 pants.backend.go.util_rules.go_bootstrap.GoBootstrap 48 1 pants.backend.go.util_rules.goroot.GoRoot 48 1 pants.backend.go.util_rules.link.LinkerSetup 48 1 pants.backend.go.util_rules.pkg_analyzer.PackageAnalyzerSetup 48 1 pants.backend.go.util_rules.sdk.GoSdkRunSetup 48 1 pants.backend.go.util_rules.third_party_pkg.AllThirdPartyPackages 48 1 pants.backend.go.util_rules.third_party_pkg.AllThirdPartyPackagesRequest 48 1 pants.backend.go.util_rules.third_party_pkg.ModuleDescriptors 48 1 pants.backend.go.util_rules.third_party_pkg.ModuleDescriptorsRequest 48 1 pants.backend.project_info.filter_targets.FilterSubsystem 48 1 pants.backend.project_info.regex_lint.RegexLintSubsystem 48 1 pants.backend.python.dependency_inference.module_mapper.AllPythonTargets 48 1 pants.backend.python.dependency_inference.module_mapper.FirstPartyPythonModuleMapping 48 1 pants.backend.python.dependency_inference.module_mapper.FirstPartyPythonTargetsMappingMarker 48 1 pants.backend.python.dependency_inference.module_mapper.ThirdPartyPythonModuleMapping 48 1 pants.backend.python.dependency_inference.parse_python_dependencies.GeneralPythonDependencyVisitorRequest 48 1 pants.backend.python.dependency_inference.parse_python_dependencies.ParserScript 48 1 pants.backend.python.dependency_inference.parse_python_dependencies.PythonDependencyVisitor 48 1 pants.backend.python.dependency_inference.subsystem.PythonInferSubsystem 48 1 pants.backend.python.goals.lockfile.PythonSyntheticLockfileTargetsRequest 48 1 pants.backend.python.lint.add_trailing_comma.subsystem.AddTrailingComma 48 1 pants.backend.python.lint.autoflake.subsystem.Autoflake 48 1 pants.backend.python.lint.bandit.subsystem.Bandit 48 1 pants.backend.python.lint.black.subsystem.Black 48 1 pants.backend.python.lint.docformatter.subsystem.Docformatter 48 1 pants.backend.python.lint.flake8.subsystem.Flake8 48 1 pants.backend.python.lint.flake8.subsystem.Flake8FirstPartyPlugins 48 1 pants.backend.python.lint.isort.subsystem.Isort 48 1 pants.backend.python.macros.python_requirements.GenerateFromPythonRequirementsRequest 48 1 pants.backend.python.subsystems.python_native_code.PythonNativeCodeSubsystem 48 1 pants.backend.python.subsystems.python_native_code.PythonNativeCodeSubsystem.EnvironmentAware 48 1 pants.backend.python.subsystems.repos.PythonRepos 48 1 pants.backend.python.subsystems.setup.PythonSetup 48 1 pants.backend.python.target_types_rules.PythonResolveFieldDefaultFactoryRequest 48 1 pants.backend.python.util_rules.interpreter_constraints.InterpreterConstraints 48 1 pants.backend.python.util_rules.pex_cli.PexCli 48 1 pants.backend.python.util_rules.pex_cli.PexPEX 48 1 pants.backend.python.util_rules.pex_environment.PexEnvironment 48 1 pants.backend.python.util_rules.pex_environment.PexSubsystem 48 1 pants.backend.python.util_rules.pex_environment.PexSubsystem.EnvironmentAware 48 1 pants.backend.python.util_rules.pex_environment.PythonExecutable 48 1 pants.backend.python.util_rules.pex_requirements.Lockfile 48 1 pants.backend.python.util_rules.pex_requirements.Resolve 48 1 pants.backend.python.util_rules.python_sources.PythonSourceFiles 48 1 pants.backend.python.util_rules.python_sources.StrippedPythonSourceFiles 48 1 pants.backend.shell.lint.shellcheck.subsystem.Shellcheck 48 1 pants.backend.shell.lint.shfmt.subsystem.Shfmt 48 1 pants.backend.shell.subsystems.shell_tes… pantsbuild/pants