Page 514 - 《软件学报》2024年第4期
P. 514

2092                                                       软件学报  2024  年第  35  卷第  4  期


                                     sys  tlsf  tc  je  hd  tbb  sn   mi   tlsfcc  hslab  wfslab
                                   200
                                   150
                                执行时间 (按照 wfslab 归一化) (%)  100 0
                                    50

                                   −50
                                  −100
                                         cfrac  barnes espresso  redis  cxqueue  larson  lean glibc-simple
                                      sys  tlsf  tc  je  hd  tbb  sn   mi  tlsfcc  hslab  wfslab
                                   200
                                   150
                                执行时间 (按照 wfslab 归一化) (%)  100 0
                                    50

                                   −50
                                  −100
                                      xmalloc-test cscratch  rptest sh6benchsh8bench mstress alloc-test glibc-thread
                                         图 5 x86/64 Ryzen  平台运行基准测试的执行时间

                                      sys  tlsf  tc  je  hd  tbb  sn   mi  tlsfcc  hslab  wfslab
                                   200
                                   150
                                执行时间  (按照 wfslab 归一化) (%)  100 0
                                    50

                                   −50
                                  −100
                                         cfrac  barnes espresso  redis  cxqueue  larson  lean glibc-simple

                                      sys  tlsf  tc  je  hd  tbb  sn   mi  tlsfcc  hslab  wfslab
                                   200
                                  (按照 wfslab 归一化) (%)  0
                                   150
                                执行时间  100
                                    50

                                   −50
                                  −100
                                      xmalloc-testcscratch  rptest sh6benchsh8bench mstress alloc-test glibc-thread
                                       图 6 aarch64 Snapdragon  平台运行基准测试的执行时间

                    ● 问题  4: 对比  wfslab  分配器与通用内存分配器, 说明通过对分配器层级函数和策略函数的系统设计与定制
                 能否减少内存请求延迟.
                    ● 问题  5: 通过为  tlsfcc, hslab, wfslab  增加内存漏洞缓解措施的附加层, 进一步说明榫卯框架的组合性以及低
                 组合开销.
                    ● 关于问题    1  的分析. 榫卯框架依赖     C  宏预处理器的元编程特性, 通过生成中间函数的方式完成层级函数的
                 复合, 但该方式可能会造成额外的函数调用过程. 函数调用过程中的                     prologue 和  epilogue 步骤通常包含多组产生
                 访存操作的栈操作指令. 对于频繁调用的内存请求接口而言, 额外的操作如访存或者条件判断都有可能会造成明
                 显的性能下降. 如     supermalloc 与  snmalloc 通过消除大小阶映射函数中的条件分支就能显著改善单线程瓶颈. 不
                 过, 现代  C  编译器优化通常可以将函数调用过程展开并消除不必要的函数调用与重复条件判断. 根据表                             4  中的实
                 验结果, 比较基于榫卯框架实现的           wfslab, 手动编码实现的    wfslabm  以及额外插入   fake 附加层的  wfslabfl 可以得
   509   510   511   512   513   514   515   516   517   518   519