关于writerbuffer初始化Reserve和Grow的长度
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 30/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- cpp
- 领域
- performance
调研方向
从 SerializeImpl 开始,跟踪 writerbuffer 如何使用 Reserve(estimate) 和 Grow(inc_len),包括 issue 中展示的常量和长度公式。测量或检查由此产生的内存分配,然后记录这些值代表什么,以及所报告的内存行为是否需要进行特定修正。
由索引模型根据 Issue 内容生成。
描述
constexpr size_t kExpectMinifyRatio = 18;
size_t estimate = node_nums * kExpectMinifyRatio + 64;
wb.Reserve(estimate);
inc_len = str_len * 6 + 32 + 3;
wb.Grow(inc_len);
想问一下,SerializeImpl这个函数里,writerbuffer初始化的长度和Grow的长度是以什么作为考量的,代码里的这些数字代表什么含义呢?最近执行代码的时候发现这里的内存分配感觉有些问题,
- 主要语言
- C++
- 星标
- 976
- 派生
- 128
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
bytedance/sonic-cpp 的其他 Issue
-
难度 5/5 一周以上 新手友好度 30/100
-
难度 5/5 一周以上 新手友好度 1/100
-
对 parseImpl 进行优化未关闭
难度 3/5 1-2 天 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 25/100
-
U64toa 单元测试用例不通过未关闭
难度 3/5 1-2 天 新手友好度 55/100
查看 bytedance/sonic-cpp 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 92/100
espressif/esp-matter#1867 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 92/100
isce-framework/isce3#387 ·
-
upstream update
难度 2/5 1-3 小时 新手友好度 68/100
conan-io/conan-center-index#31055 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复