CN109582572A - 一种判断可管理程序在多次执行中进入稳定阶段的方法 - Google Patents

一种判断可管理程序在多次执行中进入稳定阶段的方法 Download PDF

Info

Publication number
CN109582572A
CN109582572A CN201811404145.2A CN201811404145A CN109582572A CN 109582572 A CN109582572 A CN 109582572A CN 201811404145 A CN201811404145 A CN 201811404145A CN 109582572 A CN109582572 A CN 109582572A
Authority
CN
China
Prior art keywords
program
iteration
stabilization sub
stage
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811404145.2A
Other languages
English (en)
Other versions
CN109582572B (zh
Inventor
张为华
鲁云萍
季晓枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201811404145.2A priority Critical patent/CN109582572B/zh
Publication of CN109582572A publication Critical patent/CN109582572A/zh
Application granted granted Critical
Publication of CN109582572B publication Critical patent/CN109582572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明属于计算机技术领域,具体为一种判断可管理程序在多次执行中进入稳定阶段的方法。本发明基于程序运行时收集的特征数据,利用齐性检验和线性拟合方法,判断程序执行是否进入稳定阶段。本发明基于程序运行时的多维数据来表征程序的运行特征,之后通过对多个区间的程序性能应用齐性检验对程序性能的波动性是否稳定进行判断,最后通过线性拟合检验程序的趋势是否平稳。本发明方法可以有效确定可管理程序的多次迭代中的稳定阶段。

Description

一种判断可管理程序在多次执行中进入稳定阶段的方法
技术领域
本发明属于计算机技术领域,具体涉及一种判断可管理程序在多次执行中进入稳定阶段的方法。
背景技术
程序的性能评估对于计算机科学技术的研究而言一直是一个非常重要的过程和一项非常关键的工作。对于计算机科学的研究,性能评估的可信度直接影响到设计和研究的最终结果的合理性,甚至正确性。比如,当相关优化的改进程度只有10%左右时,如果在性能评估时产生的偏差接近或者超过10%,可能导致完全相反的研究结论。此外,性能评估的效率对于相关研究而言同样是非常重要的,很多设计都必须在知道性能评估结果的基础上才能进行,效率较低的性能评估过程会拖慢整个研究的进度。
然而程序的性能并非是一成不变的,会受到各种因素的影响,比如系统的线程调度,外部输入的影响等。如果运行一个程序多遍,其性能表现或多或少都会有所波动。由于程序的波动是随机的,对存在不确定性的程序进行简单的性能评估,有些时候会存在偏差甚至会得到错误的结果,从而产生带有误导性的结论。所以,如果要对程序进行可信的性能评估,就必须要对程序运行过程中的不确定性进行处理。这使得对程序的性能进行可信的评估成为了一项艰难而又耗时的工作。
这其中,可管理程序的执行环境中的诸多机制优惠给不确定性带来很多的变化。以Java为例,Java程序运行在一个虚拟机当中,虚拟机中的诸多机制都会给程序的性能和行为带来影响。Java程序常常被用于提供服务或者是作为应用,这样该程序就会持续地运行,在这一过程中,即时编译器会不断地优化该程序。在该虚拟机的一个调用(Invocation)中重复多次运行同一个程序,那么后续的运行都能够利用到之前的优化结果,即时编译器会不断地优化这一程序,直到大多数方法都被即时编译器优化编译过为止。刚开始的程序运行迭代(Run或Iteration)由于类加载,以及被优化的方法较少的缘故,运行时间较长,随着即时编译器的工作,每个应用一次运行迭代的运行时间波动较大,这一阶段被称为起始阶段(Startup Stage)。处于这一阶段时,由于即时编译器处于高负荷的工作中,垃圾收集器也会变得更加活跃。所有类加载都结束并且大部分的代买被优化之后,程序的运行进入了相对稳定的阶段,即时编译器会变得比较不活跃,垃圾收集的活动也变得更加稳定,这个时候,应用的不同运行迭代的时间受JVM系统影响较少,程序性能相比于初始化阶段也比较稳定,这样的阶段被称为稳定阶段(Steady Stage)。在稳定阶段下,程序的性能表现相较于起始阶段更为稳定,并且接近于实际执行的过程,所以对Java程序的性能评估一般选择处于稳定阶段的性能运行结果。要对稳定阶段的Java程序进行性能评估必须要面对的一个问题就是如何判读该程序的重复迭代已经进入了稳定阶段。在之前的相关研究中,对于稳定阶段的判断通常使用程序不同迭代运行时间的变异系数(Coefficient of Variation,CV)的阈值来判断该程序的迭代是否进入了稳定阶段。然而,由于这样的判断方法主要基于连续相邻运行迭代的时间变化进行判断,判断出来的稳定阶段很可能并非是真正的稳定阶段,而进入一种“局部稳定”的阶段。在这种阶段下,虽然这段时间内程序的性能结果看上去以及稳定,但实际上即时编译器仍然在工作。整个应用也需要经过一定的时间和波动才进入真正的稳定阶段。除此之外,只使用运行时间的信息并不足以表征执行过程的特征。在很多情况下,两次运行的性能结果也就是运行时间虽然相同,但是其内在的表现以及行为很可能是不同的。最后,之前的方法使用变异系数的阈值来判断,但是现在不同的Java程序之间不确定性差异非常大,很难使用简单的阈值来对所有程序的不确定性进行判断。
发明内容
针对上述现有技术的不足,本发明的目的在于提供一种简单的判断可管理程序在多次执行中进入稳定阶段的方法。该方法可靠、有效、准确。
本发明提供的判断可管理程序在多次执行中进入稳定阶段的方法,先对程序运行时的多个阶段的数据进行降维处理,然后依次用齐性检验和线性拟合的方法来分析数据,进而判断程序执行的稳定阶段。本发明的技术方案具体介绍如下。
一种判断可管理程序在多次执行中进入稳定阶段的方法,具体步骤如下:
第一步,运行时收集包括运行时间和即时编译器的活跃程度在内的程序行为信息作为进行稳定状态判断的参数,得到多维数据后,为每一个运行迭代构建一个多维的特征向量,再使用主成分分析PCA进行降维,得到一个一维的稳定特征向量;
第二步,基于降维之后的运行特征,把每个迭代以及其之后的k-1个迭代组成一个长度为k的区间,使用齐性检验,检验连续区间上的不确定性,判断两个相邻区间上的不确定性是否相近,从而确定周期中的迭代是否进入了稳定的阶段,如果该区间进入了稳定阶段,那么就说明这一区间的起始第一个迭代就是稳定阶段的起点;
第三步,利用了线性拟合的方法,把第二步中判定为稳定的区间与直线进行线性拟合,拟合的直线形式为y=ax+b;再根据预先设定的误差范围σ0,判断根据区域拟合出的直线斜率是否接近和x轴平行,如果通过判断,那么就认为这一区间确实进入了稳定的阶段。
和现有技术相比,本发明的有益效果在于:
1)本发明方法对稳定阶段的判断有效、准确;
2)在判断稳定阶段的过程中,本发明使用齐性检验解决了确定稳定性判断的阈值比较困难的问题。通过齐性检验可以判断多个样本中变异系数是否一致,而不需要通过阈值来进行判断;
3)为了避免进入局部稳定阶段,本发明利用了线性拟合的方法。本发明通过将之前判定为稳定的区间与直线进行拟合,用拟合后的直线斜率判断该区间是否有上升或者下降的趋势,以免出现平缓下降的阶段。
附图说明
图1为实施例1中Java程序多次运行所记录的运行时间图。
图2为实施例1中Java程序多次运行所记录的即时编译器任务数。
图3为实施例1中Java程序多次运行所记录的垃圾回收频率。
图4为实施例1中降维之后的PCA特征。
图5为实施例1中线性拟合示意图。
具体实施方式
下面将结合本发明的附图和实施例对本发明技术方案进行详细阐述。
本发明主要利用了齐性检验和线性拟合对程序执行的稳定阶段进行判断。
我们假定可管理的程序的执行信息已经收集,可以通过多种方法来收集,例如虚拟机和运行时环境。进行稳定阶段判断的流程如下:
第一步,特征选择和化简
当即时编译器在不停地进行优化工作时,其程序行为往往会随着即时编译器或者二进制翻译工具的工作以及环境中其他机制而不断改变。即时编译器会探测程序运行中的热点,编译且优化这些热点方法。当一个方法或者迭代体的热度超过设定的阈值时,其代码作为一个编译任务加入到编译队列中,即时编译器的工作状态对于稳定阶段的判断来说则会有比较大的帮助。当主要热点代码都被优化到某一水平之后,即时编译器就会进入低频度的工作状态,活跃程度大大下降,对应用行为的改变也会减少,此时,应用的行为也就相对稳定了。这时程序执行的大部分代码都是被优化完毕的代码。反之,当即时编译器的工作进入一个比较不活跃的状态,也就是即时编译器的任务数变少的时候,一定程度上代表程序进入了稳定阶段。本发明会选择运行时间、即时编译器的活跃程度和其它相应的程序行为信息来作为进行稳定状态判断的参数。
得到多维数据后,本发明使用了主成分分析(Principal Component Analysis,PCA)对收集到的多种数据进行降维,以简化进行特征判断的过程。用收集到的多种数据作为表征执行过程的特征变量,虚拟机执行的每一次迭代就可用一个多维特征向量刻画。本发明对多维向量使用主成分分析进行降维,得到一个一维的稳定特征向量。
第二步,区间划分和齐性检验。
本发明以区间为单位判断稳定阶段。把每个迭代以及其之后的k-1个迭代组成一个长度为k的区间,也就是[1..k],[2..k+1],..[L-k+1..L],其中k为区间的长度,L为总样本数。以该区间作为单位来判断稳定阶段。如果该区间进入了稳定阶段,那么就说明这一区间的起始第一个迭代就是稳定阶段的起点。
进行稳定阶段判断首先要解决的问题是如何在不用阈值的情况下判断运行迭代序列的波动是否稳定。只有当程序的不确定性变化稳定下来之后才能认为到达了稳定阶段的迭代。
本发明采用统计学中的齐性检验方法分析数据。齐性检验是统计学中一种判断多个样本中变异系数是否一致的假设检验方法。该方法通过提出默认假设,计算多个样本之间的检验统计量,对多个样本中的变异系数进行了检验,并且给出两者之间是否有显著性差异的结论。在本发明中,通过齐性检验,可以检验连续区间上的不确定性,判断两个区间上的不确定性是否相近,从而确定周期中的迭代是否进入了稳定的阶段。对于运行迭代i,齐性检验可以判断[i..i+k-1],[i+k..i+2k-1],..[i+nk..i+(n+1)k-1]这n个连续区间的不确定性。如果几个区间上的波动能够通过齐性检验,那么就说明这几个区间上并没有显著性差异。通过变异系数的齐性检验,能够得到有置信度支撑的结论,判断连续区间上的稳定性特征的变异系数是否已经稳定。
第三步,用线性拟合检验通过齐性检验的区间。
通过齐性检验,本发明能够判断出虚拟机周期的不确定性是否稳定,但仅凭不确定性的稳定无法确保该虚拟机周期进入了平稳的阶段,而可能进入局部稳定阶段。考虑如下情况:当一个程序的不确定性保持平稳时,其性能结果仍然在缓慢地下降。如果下降过程是一个均匀的过程,那么齐性检验没有办法判断出不稳定性。所以,本发明采用了线性拟合作为判断稳定性的第二步。线性拟合的方法需要设定参数误差范围σ0,通过该参数来判断拟合是否接近于目标。由于是为了判断线性拟合是否接近于目标,故而该误差范围不需要根据不同的程序来进行单独的设定,可以使用统一的值。
为了避免判断出的阶段进入局部稳定阶段,本发明利用了线性拟合的方法。本发明把之前判定为稳定的区间与直线进行拟合,拟合的直线形式为y=ax+b。通过拟合直线斜率判断该区间的上升或者下降趋势,以免出现平缓下降的阶段。假设有k个用于判断稳定阶段的区间,对每个区间进行线性拟合,能够得到如下形式的k个拟合直线。
y=aix+bi,i∈[1..k]
之后,根据预先设定的误差范围σ0,判断根据区域拟合出的直线斜率是否接近和x轴平行。如果通过判断,那么就可以认为这一区间进入了稳定的阶段。
通过上述步骤,本发明确保了找到的区间在多种特征下,波动性都较小,而且不会有上升或者下降趋势,确实进入了稳定状态的阶段。
实施例1
以Java虚拟机为例,本发明提供一种判断可管理程序在多次执行中进入稳定阶段的方法,具体步骤如下:
(1)首先,确定在Java虚拟机运行时需要记录的特征,除了运行时间和即时编译器的特征之外,垃圾收集器能够在一定程度上代表稳定阶段的特征。垃圾收集器负责在Java程序运行时对生命周期已经结束的对象进行内存回收。垃圾收集器由单独的线程进行工作,其在工作时,会或多或少的暂停原先的程序。当垃圾收集被触发的频率稳定下来之后,在某种程度上也表示程序的运行结果进入了稳定阶段。
(2)记录即时编译器的信息以及垃圾回收机制的信息。本发明使用每个迭代内完成的编译和优化任务数来代表即时编译器的活跃程度。这一信息可以通过-XX:+PrintCompilation选项来记录,该选项会记录每一个编译任务的开始时间,持续时间以及每个任务的相关信息。而垃圾回收机制的活动信息通过堆的占用率来代表,这一信息使用-XX:+PrintGCDetails来进行收集,该选项会打印每一次垃圾回收活动的信息,包括持续时间,任务阶段,堆在回收前后的阶段等。
(3)在机器上运行一个周期,每个周期包含了300次程序迭代,记录下运行时即时编译器信息以及垃圾收集的信息,存放到日志文件中。使用Python脚本读取日志中的信息,经过处理生成三维特征向量。所收集到的数据如图1,图2和图3所示。
(4)进行PCA降维,降维后的数据如图4所示。使用主成分分析进行降维之后得到的PCA特征能够保留原先多维特征中95%的信息。之后就可以直接在这个一维的特征向量上进行稳定阶段的判断。
(5)对降维之后的运行特征使用齐性检验,寻找不确定性比较平稳的区间。从头开始,检验以每个迭代开头的长度为k的区间。这里以从Xi开始的区间为例。
(6)使用齐性检验判断以Xi开头的区间和以Xi+k开头的区间的不确定性差异。如果通不过检验,也就是差异过大,就重复此步,判断以Xi+1为开头的区间。
(7)如果通过了齐性检验,就对数据进行拟合。拟合将在一个更大的区间上进行,该区间从Xi开始,长度为2k。判断该直线的斜率,假如直线效率过大,则说明该区间仍然有上升或者下降的趋势存在,并非完全稳定,重新返回第3步。如果直线斜率足够小,则说明该区间通过了本检验,可以认为迭代Xi即是稳定阶段的起始点。如根据降维后图4的例子,从迭代10开始程序就进入了缓慢下降但是不确定性平稳的阶段,但是,通过线性拟合之后图5能够发现,直到迭代15时该程序才真正进入到稳定阶段之中。再比对实际的运行时即时编译器信息以及垃圾收集的信息,可以确定迭代到15时该程序进入稳态,跟实际情况一致。

Claims (1)

1.一种判断可管理程序在多次执行中进入稳定阶段的方法,其特征在于,具体步骤如下:
第一步,运行时收集包括运行时间和即时编译器的活跃程度在内的程序行为信息作为进行稳定状态判断的参数,得到多维数据后,为每一个运行迭代构建一个多维的特征向量,再使用主成分分析PCA进行降维,得到一个一维的稳定特征向量;
第二步,基于降维之后的运行特征,把每个迭代以及其之后的k-1个迭代组成一个长度为k的区间,使用齐性检验,检验连续区间上的不确定性,判断两个相邻区间上的不确定性是否相近,从而确定周期中的迭代是否进入了稳定的阶段,如果该区间进入了稳定阶段,那么就说明这一区间的起始第一个迭代就是稳定阶段的起点;
第三步,利用了线性拟合的方法,把第二步中判定为稳定的区间与直线进行线性拟合,拟合的直线形式为y=ax+b;再根据预先设定的误差范围σ0,判断根据区域拟合出的直线斜率是否接近和x轴平行,如果通过判断,那么就认为这一区间确实进入了稳定的阶段。
CN201811404145.2A 2018-11-23 2018-11-23 一种判断可管理程序在多次执行中进入稳定阶段的方法 Active CN109582572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811404145.2A CN109582572B (zh) 2018-11-23 2018-11-23 一种判断可管理程序在多次执行中进入稳定阶段的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811404145.2A CN109582572B (zh) 2018-11-23 2018-11-23 一种判断可管理程序在多次执行中进入稳定阶段的方法

Publications (2)

Publication Number Publication Date
CN109582572A true CN109582572A (zh) 2019-04-05
CN109582572B CN109582572B (zh) 2023-05-02

Family

ID=65924191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811404145.2A Active CN109582572B (zh) 2018-11-23 2018-11-23 一种判断可管理程序在多次执行中进入稳定阶段的方法

Country Status (1)

Country Link
CN (1) CN109582572B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127305A (zh) * 2021-04-22 2021-07-16 北京百度网讯科技有限公司 异常检测方法及装置
CN115563015A (zh) * 2022-11-09 2023-01-03 科东(广州)软件科技有限公司 一种代码热度统计方法、装置、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070021953A1 (en) * 2005-07-15 2007-01-25 Shuichi Toriyama Device simulation apparatus, device simulation method, and device simulation program
CN101093388A (zh) * 2007-07-12 2007-12-26 上海交通大学 工业不稳定时滞过程模型在线检测的方法
CN104794112A (zh) * 2014-01-16 2015-07-22 中国移动通信集团山西有限公司 时间序列处理方法及装置
CN105243276A (zh) * 2015-10-14 2016-01-13 中国地震局地壳应力研究所 一种建筑物震害分析方法
CN107679896A (zh) * 2017-09-22 2018-02-09 北京京东尚科信息技术有限公司 基于时序‑截面模型的评估方法和评估系统
CN107885965A (zh) * 2017-09-26 2018-04-06 深圳市宇数科技有限公司 一种数据探索发现方法、系统、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070021953A1 (en) * 2005-07-15 2007-01-25 Shuichi Toriyama Device simulation apparatus, device simulation method, and device simulation program
CN101093388A (zh) * 2007-07-12 2007-12-26 上海交通大学 工业不稳定时滞过程模型在线检测的方法
CN104794112A (zh) * 2014-01-16 2015-07-22 中国移动通信集团山西有限公司 时间序列处理方法及装置
CN105243276A (zh) * 2015-10-14 2016-01-13 中国地震局地壳应力研究所 一种建筑物震害分析方法
CN107679896A (zh) * 2017-09-22 2018-02-09 北京京东尚科信息技术有限公司 基于时序‑截面模型的评估方法和评估系统
CN107885965A (zh) * 2017-09-26 2018-04-06 深圳市宇数科技有限公司 一种数据探索发现方法、系统、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
卢纹岱,朱红兵,何丽娟,石国书: "统计软件应用的常见误区与解决途径" *
孟宪花;于彬;王翼飞;: "基于贝叶斯统计方法的两总体基因表达数据分类" *
高杨;滕晓坤;肖华胜;: "生物芯片数据处理和分析方法" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127305A (zh) * 2021-04-22 2021-07-16 北京百度网讯科技有限公司 异常检测方法及装置
CN113127305B (zh) * 2021-04-22 2024-02-13 北京百度网讯科技有限公司 异常检测方法及装置
CN115563015A (zh) * 2022-11-09 2023-01-03 科东(广州)软件科技有限公司 一种代码热度统计方法、装置、设备和存储介质
CN115563015B (zh) * 2022-11-09 2023-07-07 科东(广州)软件科技有限公司 一种代码热度统计方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN109582572B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
Hsu et al. Arrow: Low-level augmented bayesian optimization for finding the best cloud vm
US11755451B2 (en) Method and apparatus for tuning adjustable parameters in computing environment
Kwon et al. Mantis: Automatic performance prediction for smartphone applications
US6792393B1 (en) System and method for diagnosing computer system operational behavior
Hsu et al. Scout: An experienced guide to find the best cloud configuration
US8522216B2 (en) Memory leak detection
BR112015019167B1 (pt) Método realizado por um processador de computador e sistema
JP2010507146A (ja) 分散システムの能力計画及びリソース最適化を行う方法と装置
US8856754B2 (en) Systems and methods for enhanced profiling of computer applications
Zhao et al. A comprehensive approach to optimal software rejuvenation
US10754744B2 (en) Method of estimating program speed-up in highly parallel architectures using static analysis
Nguyen et al. Understanding the influence of configuration settings: An execution model-driven framework for apache spark platform
CN113342685A (zh) 精准测试方法、装置、计算机设备和存储介质
CN110688168A (zh) 提高应用程序启动速度方法、装置、设备及存储介质
Panigrahi et al. An approach to prioritize the regression test cases of object-oriented programs
CN109582572A (zh) 一种判断可管理程序在多次执行中进入稳定阶段的方法
US11734063B2 (en) Job management based on generated execution time prediction model and prediction accuracy
CN108399125B (zh) 自动化测试方法、装置、计算机设备和存储介质
CN113704129A (zh) 一种回归测试方法、装置、存储介质和设备
Duarte et al. A model-based framework for the analysis of software energy consumption
US20090138237A1 (en) Run-Time Characterization of On-Demand Analytical Model Accuracy
Hsu et al. Low-level augmented bayesian optimization for finding the best cloud vm
CN113656292B (zh) 一种多维度跨时空基础软件性能瓶颈检测方法
Takeda et al. Applying change impact analysis test to migration test case extraction based on IDAU and graph analysis techniques
He et al. Performance testing for cloud computing with dependent data bootstrapping

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant