数据调用图构建与数据流分析技术评估
需求驱动的调用图构建算法评估
在面向对象程序中,对于解决调用点问题的算法评估是一个重要的研究方向。研究人员使用SPECJVM基准测试对一种需求驱动的迭代分析算法进行了评估,得到了以下关键结果:
- 类层次分析(CHA)时间占比 :CHA是穷举和需求驱动迭代分析的前提条件。在10个SPECJVM程序中,有7个程序的CHA时间主导了穷举调用图的构建时间。不过,对于这7个程序中的6个,CHA本身就足以构建准确的调用图。而对于javac、mpegaudio和jack这三个最大的SPECJVM程序,穷举迭代分析所需的时间明显超过了CHA时间。
|程序|CHA时间与穷举调用图构建时间关系|CHA构建准确调用图情况|穷举迭代分析与CHA时间对比|
|----|----|----|----|
|7个SPECJVM程序|CHA时间主导|6个程序仅CHA足够|无明显差异|
|javac、mpegaudio、jack|无明显主导关系| - |穷举迭代分析时间长|
-
单调用点分析对比 :在解决单个调用点时,需求驱动迭代分析平均仅占穷举迭代分析所需时间的近10%。对于mpegaudio和jack,需要分析的节点数量平均约为3%,而javac约为20%。需要分析的程序数量,mpegaudio和jack小于20%,javac则接近75%。
|程序|需求驱动迭代分析时间占比|需分析节点数量占比|需分析程序数量占比|
|----|----|----|----|
|mpegaudio和jack|近10%|近3%|小于20%|