Page 46 - 《软件学报》2024年第6期
P. 46

2622                                                       软件学报  2024  年第  35  卷第  6  期


                 selective2objH  的精度设置下, DDoop  增量框架相比原始       Doop  框架的加速比最为明显. 在我们的实验评估中,
                 DDoop  增量框架在   selective2objH  的精度设置下可实现最高约     36×的分析加速    (CheckStyle).

                                40
                                        DDoop 对比 Doop 的加速比     参考值 1
                               DDoop 对比 Doop 的加速比  20
                                30






                                10


                                 0
                                    Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH
                                                  ErrorProne


                                     Jedis      ErrorProne  ZooKeeper    PMD      CheckStyle
                                             图 8 DDoop  对  Doop  的运行时间加速比

                    为了展示剪枝优化对分析效率的影响, 我们分别在图                   7 (开启剪枝选项) 和图      9 (关闭剪枝选项) 中展示了
                 DDoop  增量框架在运行时的前端、后端更加细节的耗时信息. 我们可以发现, 在关闭剪枝优化选项时, 增量过程
                 中前端会更加耗时, 关闭剪枝优化选项的前端耗时平均比开启剪枝优化选项要多                           41.3%. 这让  DDoop  框架在增量
                 时对比原版     Doop  框架的优势有所缩小. 此时, DDoop        增量框架相比原始       Doop  框架的平均加速比约为        4, 在
                 selective2objH  的精度设置下可实现最高约     27×的分析加速.

                                       Doop 平均时间             DDoop 增量平均前端时间
                                       DDoop 首次全量前端时间        DDoop 增量平均时间
                                       DDoop 首次全量时间
                               10 000
                              运行时间 (s)  1 000




                                 100



                                     Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH  Cl  1obj  2objH  1callsite  1type  2typeH  selective2objH




                                      Jedis                   ZooKeeper   PMD       CheckStyle
                                     图 9 DDoop  与  Doop  的实际运行时间对比      (关闭剪枝选项)

                    需要注意的是, 增量分析并不能保证在任何场景下、对任何项目的变更都能提供明显的性能优势, 特别是对
                 于可能影响到项目的较大范围的变更, 对其进行增量分析的耗时甚至可能会比重新全量分析更长. 在图                                  7  和图  9
                 中, 我们可以观察到这样一个稍显异常的例子: 在              ZooKeeper 代码库的   selective2objH  精度设置下, DDoop  增量框
                 架在增量过程中的平均消耗时间略差于              Doop  框架, 并且主要的耗时集中在后端评估部分, 我们对应给出了这种
   41   42   43   44   45   46   47   48   49   50   51