glibc 知:手册38:可调参数

本文详细介绍了GNU C Library (GLIBC)中的可调参数,涵盖内存分配、动态链接及针对不同硬件能力的调整,如malloc检查、内存池管理、POSIX线程优化和硬件特性控制。

1. 前言

The GNU C Library Reference Manual for version 2.35

2. 可调参数

Tunables

可调参数是 GNU C 库中的一项功能,它允许应用程序作者和分发维护者更改运行时库行为以匹配他们的工作负载。这些被实现为一组可以以不同方式修改的开关。当前执行此操作的默认方法是通过 GLIBC_TUNABLES 环境变量,将其设置为一串以冒号分隔的名称=值对。例如,以下示例启用 malloc 检查并将 malloc 修剪阈值设置为 128 字节:

GLIBC_TUNABLES=glibc.malloc.trim_threshold=128:glibc.malloc.check=3
export GLIBC_TUNABLES

可调参数不是 GNU C 库稳定 ABI 的一部分,它们可能会在不同版本中更改或删除。此外,修改可调值的方法可能会在版本之间和分布之间发生变化。可以为可调参数实现多个“前端”,从而允许发行版在构建时选择其首选方法。

最后,可用的可调参数集可能因发行版而异,因为可调参数功能允许发行版在自己的命名空间下添加自己的可调参数。

将 --list-tunables 传递给动态加载程序以打印具有最小值和最大值的所有可调参数:

$ /lib64/ld-linux-x86-64.so.2 --list-tunables
glibc.rtld.nns: 0x4 (min: 0x1, max: 0x10)
glibc.elision.skip_lock_after_retries: 3 (min: -2147483648, max: 2147483647)
glibc.malloc.trim_threshold: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.malloc.perturb: 0 (min: 0, max: 255)
glibc.cpu.x86_shared_cache_size: 0x100000 (min: 0x0, max: 0xffffffffffffffff)
glibc.mem.tagging: 0 (min: 0, max: 255)
glibc.elision.tries: 3 (min: -2147483648, max: 2147483647)
glibc.elision.enable: 0 (min: 0, max: 1)
glibc.cpu.x86_rep_movsb_threshold: 0x1000 (min: 0x100, max: 0xffffffffffffffff)
glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.elision.skip_lock_busy: 3 (min: -2147483648, max: 2147483647)
glibc.malloc.top_pad: 0x0 (min: 0x0, max: 0xffffffffffffffff)
glibc.cpu.x86_rep_stosb_threshold: 0x800 (min:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

canpool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值