mirror of
https://github.com/hanzoai/pack.git
synced 2026-09-30 23:43:13 +00:00
fix(ruby): upgrade to jemalloc2 (#338)
* fix: use jemalloc2 * test(ruby): add jemalloc example * docs: update jemalloc docs * test: snapshot update
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -152,7 +152,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -163,8 +163,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -152,7 +152,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -163,8 +163,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -152,7 +152,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -163,8 +163,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libatomic1 libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libatomic1 libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libatomic1 libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libatomic1 libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
+178
@@ -0,0 +1,178 @@
|
||||
{
|
||||
"caches": {
|
||||
"apt": {
|
||||
"directory": "/var/cache/apt",
|
||||
"type": "locked"
|
||||
},
|
||||
"apt-lists": {
|
||||
"directory": "/var/lib/apt/lists",
|
||||
"type": "locked"
|
||||
}
|
||||
},
|
||||
"deploy": {
|
||||
"base": {
|
||||
"step": "packages:apt:runtime"
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"include": [
|
||||
"/mise/shims",
|
||||
"/mise/installs",
|
||||
"/usr/local/bin/mise",
|
||||
"/etc/mise/config.toml",
|
||||
"/root/.local/state/mise"
|
||||
],
|
||||
"step": "packages:mise"
|
||||
},
|
||||
{
|
||||
"include": [
|
||||
"/usr/local/bundle"
|
||||
],
|
||||
"step": "install"
|
||||
},
|
||||
{
|
||||
"include": [
|
||||
"/app"
|
||||
],
|
||||
"step": "build"
|
||||
}
|
||||
],
|
||||
"startCommand": "ruby app.rb",
|
||||
"variables": {
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
"steps": [
|
||||
{
|
||||
"caches": [
|
||||
"apt",
|
||||
"apt-lists"
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y cargo libjemalloc-dev libyaml-dev rustc'",
|
||||
"customName": "install apt packages: cargo libjemalloc-dev libyaml-dev rustc"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"image": "ghcr.io/railwayapp/railpack-builder:mise-2026.3.5"
|
||||
}
|
||||
],
|
||||
"name": "packages:apt:build"
|
||||
},
|
||||
{
|
||||
"assets": {
|
||||
"mise.toml": "[mise.toml]"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
"path": "/mise/shims"
|
||||
},
|
||||
{
|
||||
"customName": "create mise config",
|
||||
"name": "mise.toml",
|
||||
"path": "/etc/mise/config.toml"
|
||||
},
|
||||
{
|
||||
"cmd": "mise install",
|
||||
"customName": "install mise packages: ruby"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"step": "packages:apt:build"
|
||||
}
|
||||
],
|
||||
"name": "packages:mise",
|
||||
"variables": {
|
||||
"MISE_CACHE_DIR": "/mise/cache",
|
||||
"MISE_CONFIG_DIR": "/mise",
|
||||
"MISE_DATA_DIR": "/mise",
|
||||
"MISE_IDIOMATIC_VERSION_FILE_ENABLE_TOOLS": "python,node,ruby,elixir,go,java,yarn",
|
||||
"MISE_INSTALLS_DIR": "/mise/installs",
|
||||
"MISE_NODE_VERIFY": "false",
|
||||
"MISE_PARANOID": "1",
|
||||
"MISE_SHIMS_DIR": "/mise/shims",
|
||||
"MISE_TRUSTED_CONFIG_PATHS": "/app"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "gem install -N bundler:2.6.9"
|
||||
},
|
||||
{
|
||||
"dest": "Gemfile",
|
||||
"src": "Gemfile"
|
||||
},
|
||||
{
|
||||
"dest": "Gemfile.lock",
|
||||
"src": "Gemfile.lock"
|
||||
},
|
||||
{
|
||||
"cmd": "bundle install"
|
||||
},
|
||||
{
|
||||
"path": "/usr/local/bundle"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"step": "packages:mise"
|
||||
}
|
||||
],
|
||||
"name": "install",
|
||||
"variables": {
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"step": "install"
|
||||
},
|
||||
{
|
||||
"include": [
|
||||
"."
|
||||
],
|
||||
"local": true
|
||||
}
|
||||
],
|
||||
"name": "build",
|
||||
"variables": {
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"caches": [
|
||||
"apt",
|
||||
"apt-lists"
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"image": "ghcr.io/railwayapp/railpack-runtime:mise-2026.3.5"
|
||||
}
|
||||
],
|
||||
"name": "packages:apt:runtime"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -135,7 +135,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -156,7 +156,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -167,8 +167,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -135,7 +135,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -156,7 +156,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -167,8 +167,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -152,7 +152,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -163,8 +163,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -135,7 +135,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -161,7 +161,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -172,8 +172,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -135,7 +135,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -164,7 +164,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -175,8 +175,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y default-libmysqlclient-dev libicu-dev libjemalloc-dev libmagickwand-dev libpq-dev libvips-dev libxml2-dev libxslt-dev libyaml-dev'",
|
||||
"customName": "install apt packages: default-libmysqlclient-dev libicu-dev libjemalloc-dev libmagickwand-dev libpq-dev libvips-dev libxml2-dev libxslt-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y default-libmysqlclient-dev libicu-dev libjemalloc2 libmagickwand-dev libpq-dev libvips-dev libxml2-dev libxslt-dev libyaml-dev'",
|
||||
"customName": "install apt packages: default-libmysqlclient-dev libicu-dev libjemalloc2 libmagickwand-dev libpq-dev libvips-dev libxml2-dev libxslt-dev libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -152,7 +152,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -163,8 +163,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -135,7 +135,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -156,7 +156,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -167,8 +167,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -155,7 +155,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -263,7 +263,7 @@
|
||||
"BUNDLE_GEMFILE": "/app/Gemfile",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
"MALLOC_ARENA_MAX": "2"
|
||||
}
|
||||
},
|
||||
@@ -274,8 +274,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libatomic1 libjemalloc-dev libyaml-dev'",
|
||||
"customName": "install apt packages: libatomic1 libjemalloc-dev libyaml-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libatomic1 libjemalloc2 libyaml-dev'",
|
||||
"customName": "install apt packages: libatomic1 libjemalloc2 libyaml-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -202,7 +202,7 @@ func (p *RubyProvider) Build(ctx *generate.GenerateContext, build *generate.Comm
|
||||
}
|
||||
|
||||
func (p *RubyProvider) AddRuntimeDeps(ctx *generate.GenerateContext) {
|
||||
packages := []string{"libyaml-dev", "libjemalloc-dev"}
|
||||
packages := []string{"libyaml-dev", "libjemalloc2"}
|
||||
|
||||
if p.usesPostgres(ctx) {
|
||||
packages = append(packages, "libpq-dev")
|
||||
@@ -285,7 +285,7 @@ func (p *RubyProvider) GetRubyEnvVars(ctx *generate.GenerateContext) map[string]
|
||||
"GEM_PATH": "/usr/local/bundle",
|
||||
"GEM_HOME": "/usr/local/bundle",
|
||||
"MALLOC_ARENA_MAX": "2",
|
||||
"LD_PRELOAD": "/usr/lib/x86_64-linux-gnu/libjemalloc.so",
|
||||
"LD_PRELOAD": "libjemalloc.so.2",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ BUNDLE_GEMFILE="/app/Gemfile"
|
||||
GEM_PATH="/usr/local/bundle"
|
||||
GEM_HOME="/usr/local/bundle"
|
||||
MALLOC_ARENA_MAX="2"
|
||||
LD_PRELOAD="libjemalloc.so.2"
|
||||
```
|
||||
|
||||
## Configuration
|
||||
@@ -115,8 +116,8 @@ section in your `Gemfile.lock` and installs that specific version.
|
||||
|
||||
Railpack includes several performance optimizations:
|
||||
|
||||
- **jemalloc**: Installs and configures `libjemalloc` for improved memory
|
||||
allocation performance
|
||||
- **jemalloc**: Installs `libjemalloc2` and preloads it via `LD_PRELOAD`
|
||||
for improved memory allocation performance
|
||||
- **YJIT**: For Ruby 3.2+, installs `rustc` and `cargo` required for YJIT
|
||||
compilation support
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
source 'https://rubygems.org'
|
||||
@@ -0,0 +1,12 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-24
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||
BUNDLED WITH
|
||||
2.6.9
|
||||
@@ -0,0 +1,7 @@
|
||||
# We check the memory map of the current process to see if the
|
||||
# shared library is actually loaded.
|
||||
if File.read("/proc/self/maps").include?("libjemalloc")
|
||||
puts "jemalloc available"
|
||||
else
|
||||
puts "jemalloc not available"
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"deploy": {
|
||||
"startCommand": "ruby app.rb"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"expectedOutput": "jemalloc available"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user