eedf735574
Bootsnap speeds up Rails loading and now ships by default with Rails 5.2 apps. We should promote this to a default gem and test it out in production. This will also make it possible for the Helm Charts to take advantage of this. It appears that Bootsnap with Rails 5.2.3 and all the GitLab CE gems loads fine on an ARM platform now, so it's possible that https://gitlab.com/gitlab-org/gitlab-ce/issues/34799 has been resolved. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/45230
42 lines
1.9 KiB
YAML
42 lines
1.9 KiB
YAML
memory-static:
|
|
extends: .dedicated-no-docs-no-db-pull-cache-job
|
|
script:
|
|
# Uses two different reports from the 'derailed_benchmars' gem.
|
|
|
|
# Loads each of gems in the Gemfile and checks how much memory they consume when they are required.
|
|
# 'derailed_benchmarks' internally uses 'get_process_mem'
|
|
- bundle exec derailed bundle:mem > tmp/memory_bundle_mem.txt
|
|
- scripts/generate-gems-size-metrics-static tmp/memory_bundle_mem.txt >> 'tmp/memory_metrics.txt'
|
|
|
|
# Outputs detailed information about objects created while gems are loaded.
|
|
# 'derailed_benchmarks' internally uses 'memory_profiler'
|
|
- bundle exec derailed bundle:objects > tmp/memory_bundle_objects.txt
|
|
- scripts/generate-gems-memory-metrics-static tmp/memory_bundle_objects.txt >> 'tmp/memory_metrics.txt'
|
|
artifacts:
|
|
paths:
|
|
- tmp/memory_*.txt
|
|
reports:
|
|
metrics: tmp/memory_metrics.txt
|
|
|
|
# Show memory usage caused by invoking require per gem.
|
|
# Unlike `memory-static`, it hits the app with one request to ensure that any last minute require-s have been called.
|
|
# The application is booted in `production` environment.
|
|
# All tests are run without a webserver (directly using Rack::Mock by default).
|
|
memory-on-boot:
|
|
extends: .rspec-metadata-pg-10
|
|
variables:
|
|
NODE_ENV: "production"
|
|
RAILS_ENV: "production"
|
|
SETUP_DB: "true"
|
|
SKIP_STORAGE_VALIDATION: "true"
|
|
# we override the max_old_space_size to prevent OOM errors
|
|
NODE_OPTIONS: --max_old_space_size=3584
|
|
script:
|
|
# Both bootsnap and derailed monkey-patch Kernel#require, which leads to circular dependency
|
|
- ENABLE_BOOTSNAP=false PATH_TO_HIT="/users/sign_in" CUT_OFF=0.3 bundle exec derailed exec perf:mem >> 'tmp/memory_on_boot.txt'
|
|
- scripts/generate-memory-metrics-on-boot tmp/memory_on_boot.txt >> 'tmp/memory_on_boot_metrics.txt'
|
|
artifacts:
|
|
paths:
|
|
- tmp/memory_*.txt
|
|
reports:
|
|
metrics: tmp/memory_on_boot_metrics.txt
|