Page 457 - 《软件学报》2025年第9期
P. 457

4368                                                       软件学报  2025  年第  36  卷第  9  期


                    图  11  展示了 CBS、SWTC 和 FP、CBS-FP 算法的对比. 我们调节 CBS 算法和 SWTC 算法的样本比例展开
                 实验, 并同时调节 FP 和 CBS-FP 算法的采样概率, 使得          4  种算法的内存消耗保持一致. 从图         11  中可以看出, 采用
                 固定空间消耗的两种算法的平均误差低于各自的固定概率采样变体, 最大误差则没有明显区别. 这是由于基于固
                 定概率采样的方案需要按照流量峰值预留内存, 而非峰值时刻, 样本集合大小会随着流量降低而降低, 无法充分利
                 用预留内存, 导致非峰值时刻的准确度不如固定空间消耗的方案. 但是最大误差主要受峰值时刻影响, 这时两类方
                 案的样本大小相近, 因此最大误差区别较小. 此外, CBS-FP             和  CBS  算法的平均相对误差均低于 SWTC 算法. 但是
                 需要注意的是, 实际应用中是无法预估峰值流量的, 所以固定概率采样方案的应用场景会更加受限.


                                        CBS       SWTC                     CBS       SWTC
                               20       CBS-FP    FP            120        CBS-FP    FP
                              平均相对误差 (%)  12 8                  最大相对误差 (%)  80
                                                                100
                               16
                                                                 60


                               4                                 40
                                                                 20
                                  1.0  1.5  2.0  2.5  3.0  3.5  4.0  1.0  1.5  2.0  2.5  3.0  3.5  4.0
                                         样本比例 (%)                           样本比例 (%)
                                      图 11 固定概率采样算法和固定空间消耗算法的误差对比

                    图  12 则展示了 CBS、SWTC 算法和全动态模型算法的             ThinkD  和 WRS 的对比, 通过调节算法的内存占用来
                 进行实验. 可以看出, ThinkD、WRS 在内存达到         153 MB 以上时才开始工作, 这些算法需要          240 MB 以上的内存才
                 能将平均误差控制在 2% 左右, CBS 和 SWTC 算法则只需要 80 MB 内存就能达到该效果. 这说明了将全动态模型
                 算法直接迁移到滑动窗口模型是十分低效的. 而相比 SWTC                 算法, CBS 算法具有更低的误差.

                                         CBS     SWTC                      CBS     SWTC
                               14
                                         WRS     ThinkD          60        WRS    ThinkD
                               12
                              平均相对误差 (%)  10 8 6                最大相对误差 (%)  40
                                                                 50
                                                                 30


                                                                 10
                                2 4                              20
                                0                                 0
                                     40  80  120  160  200  240       40  80  120  160  200  240
                                         内存占用 (MB)                         内存占用 (MB)
                                       图 12 CBS、SWTC 算法与全动态模型算法的误差对比


                 4.6   消融实验
                    本节分析 CBS 算法的误差随着区间划分数量              d 的变化, 并分析 ETM 误差修正算法的影响. 我们测试了没有
                 误差修正的 CBS 算法, 称为 CBS-bias 的估算误差, 和完整版的 CBS 算法对比, 如图             13  所示. 该图采用了指数坐标
                 轴, 因为 CBS-bias 算法的误差变化范围极大. 实验采用 StackOverflow 数据集, 滑动窗口长度设置为 4M, 采样比例
                 设置为 4%. 图  13  加入 SWTC 算法的误差作为对比. 由于         SWTC 算法中没有参数      d, 所以其误差曲线为一条水平
                 线. 从图  13  中可以看出, CBS 和 CBS-bias 算法的误差都会随着        d  的增加而降低, 而 CBS-bias 算法收到的影响尤
                 为明显. 由于缺乏误差修正, 当        d 较小时, CBS-bias 算法报告的事实上是一个远大于滑动窗口的区间中的三角形数
   452   453   454   455   456   457   458   459   460   461   462