Vec · 内存工作台

箱子没装满,不等于仓库没占地

往 Vec 里连续推入数据,盯住 lencapacity 和“搬家次数”。你会看见性能成本究竟发生在哪一步。

当前连续内存

0len · 已初始化元素
0capacity · 可容纳元素
0重新分配次数
还没有分配堆内存。第一次 push 会申请空间。

先分清三件事

len 是现在能安全读取的元素数;capacity 是不重新分配时最多能放多少个元素;popclear 通常只降低长度,不会自动归还那块内存。

这个沙盘刻意简化了什么

为了看清因果,沙盘在空间不足时按“至少翻倍”扩容。真实 Rust 标准库不承诺固定增长倍率;不要让业务逻辑依赖某次 push 后的精确 capacity。