Skip to content

feat:random_device调整为tls对象,减少栈空间占用#533

Open
zhou-bai wants to merge 3 commits into
lailongwei:masterfrom
zhou-bai:dev/LLBC_Random_optimize
Open

feat:random_device调整为tls对象,减少栈空间占用#533
zhou-bai wants to merge 3 commits into
lailongwei:masterfrom
zhou-bai:dev/LLBC_Random_optimize

Conversation

@zhou-bai

@zhou-bai zhou-bai commented Jun 8, 2026

Copy link
Copy Markdown

#525

LLBC_Random 在默认构造时会使用 std::random_device 生成随机种子。原实现会在构造函数表达式中直接创建 std::random_device 临时对象,部分标准库实现中 std::random_device 对象体积较大,可能增加 LLBC_Random 默认构造期间的栈空间占用。

在栈空间较小的线程、协程或高频构造场景下,这种额外栈占用没有必要,也不利于稳定性和性能观测。

改动内容

本次调整将默认随机种子生成逻辑从 LLBC_Random 构造函数中拆出:

  • 新增内部函数 __LLBC_GetDefaultRandomSeed(),统一负责生成默认随机种子。
  • std::random_device 调整为 thread_local 对象,避免每次默认构造 LLBC_Random 时在栈上创建临时 std::random_device

影响范围

本次改动只影响 LLBC_Random 默认种子的生成方式,不改变随机数生成算法,也不改变固定 seed 场景下的随机序列行为。

固定 seed 构造仍然可以保证相同 seed 产生一致的随机序列。

@zhou-bai zhou-bai changed the title feat:random_device调整为tls对象,减少栈空间占用 #525 feat:random_device调整为tls对象,减少栈空间占用 (lailongwei#525) Jun 8, 2026
@zhou-bai zhou-bai changed the title feat:random_device调整为tls对象,减少栈空间占用 (lailongwei#525) feat:random_device调整为tls对象,减少栈空间占用 Jun 8, 2026
Comment thread llbc/include/llbc/core/random/Random.h Outdated
Comment thread llbc/src/core/random/Random.cpp Outdated
@zhou-bai zhou-bai requested a review from lailongwei June 8, 2026 10:59
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.

2 participants