-
Notifications
You must be signed in to change notification settings - Fork 0
Progress Report 2018.11.04
1.开始调研非配置相关的性能bug,并复现,结果见此处。复现结果形式:此处这样结果就是最后论文里公开的数据,我想用这样的方式来说服别人我是真正去复现了的,师姐您觉得是不是合适。主要是这样把所有命令都贴上去是不是合适。非配置相关的性能bug也是可以构建出性能分布的,其特征也符合之前总结出的几类,不过更需要对workload特征的总结(配置相关的性能bug也需要),我目前总结的如下表: 要总结这样的workload特征,就需要定义什么特征是可以作为特征的,什么是不可以的。目的是:只有特征具有一定的普遍性,那么才可以用测试的方法测试具有这些特征的workload,进一步才能构建出性能分布,诊断bug。我现在的定义是:类似于“元数据”的可以作为workload特征,而具体数据必须可以是随机生成的。这个定义目前还比较合适。 比如“一个insert语句中,是否含有很多的相同字符”就不能作为特征。
2.如果调研所有的性能bug,那么数据集就会很大,研究、复现所有的bug显然不可行,那么就要用抽样的方法,我看到lushan他们pldi12的文章没有讲抽样这件事,就是说他们最后用了xxx个bug。但是hanxue后来18年的时候可能是因为bug变多了,搜索出来的bug有1k多,所以随机从中选了300个。我用我目前的方法搜索到的所有性能bug数量如下:
这个数量很大,显然也要随机选一些,但是选多少是一个问题。因此我读了【ICSE11】的文章A Practical Guide for Using Statistical Tests to Assess Randomized Algorithms in Software Engineering。这篇文章讲的是:要达到统计学意义上的可信,那么在测试中如何确定“随机算法”运行的次数。这个和我从几千bugreport中如何确定抽样数有点关系,这个问题我也和hanxue在讨论,他还没有回复我。