CN103942141A - 一种检测应用程序的性能的方法和装置 - Google Patents
一种检测应用程序的性能的方法和装置 Download PDFInfo
- Publication number
- CN103942141A CN103942141A CN201410119140.0A CN201410119140A CN103942141A CN 103942141 A CN103942141 A CN 103942141A CN 201410119140 A CN201410119140 A CN 201410119140A CN 103942141 A CN103942141 A CN 103942141A
- Authority
- CN
- China
- Prior art keywords
- node
- application program
- nodes
- software network
- corporations
- 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.)
- Pending
Links
Abstract
本发明提供一种检测应用程序的性能的方法和装置,有助于开发人员确定应用程序中的哪些方法可以被改进,进而对应用程序进行优化。本发明的检测应用程序的性能的方法包括:构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;根据所述软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的所述应用程序的方法。
Description
技术领域
本发明涉及计算机技术领域,特别地涉及一种检测应用程序的性能的方法和装置。
背景技术
互联网上web应用的性能是关乎用户体验的一个重要方面,特别是在电子商务及新兴的互联网金融服务等领域,对应用的性能提出了更高的要求。对于web应用来讲,web应用中方法调用是影响性能的主要因素,如果对web应用中的所有方法调用关系有一个整体的监控,获得系统运行期间方法之间的调用关系,某个方法的调用次数,调用花费的时间等数据,那么就可以根据这些数据进行数据建模和分析,从而对系统代码的性能优化提供支持。
现有的web应用的性能检测工具,都是模拟大量用户访问Web应用系统进行压力测试。在高并发的环境下,根据静态HTML页面的响应时间,甚至动态网页的响应时间等各项指标来对性能进行评价,是一个对web应用性能的综合评价。
现有的web应用性能检测工具能够对系统的各个指标进行评定,基本不用来指导如何优化应用程序。
发明内容
有鉴于此,本发明提供一种检测应用程序的性能的方法和装置,有助于开发人员确定应用程序中的哪些方法可以被改进,进而对应用程序进行优化。
为实现上述目的,根据本发明的一个方面,提供了一种检测应用程序的性能的方法。
本发明的检测应用程序的性能的方法包括:构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;根据所述软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的所述应用程序的方法。
可选地,根据所述软件网络中的节点的度值选择一个或多个节点之后,还包括:根据调用时长和调用次数选择与所选择的节点相连的其他节点,然后确定所述其他节点对应的所述应用程序的方法。
可选地,所述构建软件网络的步骤与所述选择一个或多个节点的步骤之间,还包括:将所述软件网络划分为多个社团;所述选择一个或多个节点的步骤包括:对于多个所述社团,分别选择各社团中的度值最大的节点。
可选地,所述应用程序为web应用程序。
根据本发明的另一方面,提供了检测应用程序的性能的装置,包括:网络构建模块,用于构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;第一方法确定模块,用于根据所述软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的所述应用程序的方法。
可选地,还包括第二方法确定模块,用于根据调用时长和调用次数选择与所选择的节点相连的其他节点,然后确定所述其他节点对应的所述应用程序的方法。
可选地,还包括社团划分模块,用于在所述第一方法确定模块选择节点之前,将所述软件网络划分为多个社团;所述第一方法确定模块还用于对于多个所述社团,分别选择各社团中的度值最大的节点。
根据本发明的技术方案,根据应用程序中的方法构建软件网络,根据节点的度值从该软件网络中选择节点,从而能够确定要对哪些方法进行改进。采用先划分社团再选择节点的方式有助于在对应用程序进行优化时得到稳定的性能提升。本实施例中的这种应用程序性能检测方式有助于准确反映应用程序运行时的性能情况以及方法之间的调用关系,从而对应用程序的性能优化提供支持。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的检测应用程序的性能的优选方式的示意图;
图2是一种软件网络的示意图;
图3是根据本发明实施例的检测应用程序的性能的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的检测应用程序的性能的优选方式的示意图。如图1所示,先获取方法检测日志(步骤S11),可采用现有的各种监控应用程序的工具,得到原始数据,主要包括系统运行中方法名称,方法调用的次数和方法调用花费的时间等。对检测日志最好进行数据清洗(步骤S12),包括采用去重、统计等手段,以增强数据的有效性。根据上述数据,就可以构建软件网络(步骤S13),软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于各个方法之间的调用关系。软件网络例如图2所示,图2是一种软件网络的示意图。应用程序包含多个方法,各个方法各自分别对应于图2中的节点,节点名称可采用方法名,例如方法a至g分别对应于节点a至g。节点之间的连边是有向线段,表示节点对应的方法之间的调用关系,例如从a指向b的线段表示方法a调用方法b。上述连边可以具有权值,例如图中示出的W<a,f>、W<e,f>,该权值可以根据应用程序在运行时方法之间调用的次数和每次调用的时间共同确定,例如将调用的总次数乘以每次调用的时间。
在步骤S13之后,可以对软件网络进行社团划分(步骤S14)。可采用现有的各种社团划分算法,其目的都是将软件网络中的方法划分成不同的社团,社团内的方法之间调用相对频繁,不同社团的方法之间调用相对较少。由于所构建的网络中的连边具有权重,而权值是影响方法调用性能的决定性因素,因此最好采用加权网络的社团发现算法。划分社团的意义主要有以下几个方面,一是由于调用频率高的方法节点和权值大的方法调用连边在网络中的分布是不可预知的,如果单纯按照方法调用的权值大小和方法节点的度值大小来选定要优化的方法,这就造成不同应用优化之后不能体现稳定的性能提升。而社团发现算法通过划分社团,降低了网络中节点的分布对性能优化的影响,从而使得各种web应用都体现出一个良好的性能提升。二是通过社团划分,将软件网络划分成多个模块,而web应用的各项功能都是各个模块相互配合完成的,因此锁定了这些模块,对其进行整体优化,也就消除了各个功能在模块上的瓶颈,达到优化性能的目的。对于规模较小的应用程序,则可以划分为较少的社团或者不划分社团。
在划分社团之后,就可以选择需要优化的方法(步骤S15)。可以在每个社团中选择度值最大的一个或几个节点,此处的度值是节点的被调用次数。节点的度值越大,说明其对应的方法越频繁地被其他方法调用,因此对其对应的方法进行优化之后对于程序性能的提高有更大的贡献。进一步地可以根据调用时长和调用次数,选择与度值最大的一个或几个节点相连的其他节点,其中尽可能选择调用时长与调用次数之积较大的方法对应的相连节点。对这样的节点对应的方法进行优化也有助于提高社团作为一个模块的性能。
图3是根据本发明实施例的检测应用程序的性能的装置的主要模块的示意图。如图3所示,检测应用程序的性能的装置30主要包括网络构建模块31和第一方法确定模块32。
网络构建模块31用于构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;第一方法确定模块32用于根据软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的应用程序的方法。
检测应用程序的性能的装置30还可以包括第二方法确定模块(图中未示出),用于根据调用时长和调用次数选择与所选择的节点相连的其他节点,然后确定该其他节点对应的应用程序的方法。
检测应用程序的性能的装置30还可以包括社团划分模块,用于在第一方法确定模块32选择节点之前,将软件网络划分为多个社团;这样,第一方法确定模块32还可用于对于多个上述社团,分别选择各社团中的度值最大的节点。
根据本发明实施例的技术方案,根据应用程序中的方法构建软件网络,根据节点的度值从该软件网络中选择节点,从而能够确定要对哪些方法进行改进。采用先划分社团再选择节点的方式有助于在对应用程序进行优化时得到稳定的性能提升。本实施例中的这种应用程序性能检测方式有助于准确反映应用程序运行时的性能情况以及方法之间的调用关系,从而对应用程序的性能优化提供支持。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (7)
1.一种检测应用程序的性能的方法,其特征在于,包括:
构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;
根据所述软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的所述应用程序的方法。
2.根据权利要求1所述的方法,其特征在于,根据所述软件网络中的节点的度值选择一个或多个节点之后,还包括:
根据调用时长和调用次数选择与所选择的节点相连的其他节点,然后确定所述其他节点对应的所述应用程序的方法。
3.根据权利要求1或2所述的方法,其特征在于,
所述构建软件网络的步骤与所述选择一个或多个节点的步骤之间,还包括:将所述软件网络划分为多个社团;
所述选择一个或多个节点的步骤包括:对于多个所述社团,分别选择各社团中的度值最大的节点。
4.根据权利要求1或2所述的方法,其特征在于,所述应用程序为web应用程序。
5.一种检测应用程序的性能的装置,其特征在于,包括:
网络构建模块,用于构建软件网络,该软件网络的节点一一对应于应用程序中的各个方法,节点之间的连边对应于所述各个方法之间的调用关系;
第一方法确定模块,用于根据所述软件网络中的节点的度值选择一个或多个节点,然后确定选择的节点对应的所述应用程序的方法。
6.根据权利要求5所述的装置,其特征在于,还包括第二方法确定模块,用于根据调用时长和调用次数选择与所选择的节点相连的其他节点,然后确定所述其他节点对应的所述应用程序的方法。
7.根据权利要求5或6所述的装置,其特征在于,
还包括社团划分模块,用于在所述第一方法确定模块选择节点之前,将所述软件网络划分为多个社团;
所述第一方法确定模块还用于对于多个所述社团,分别选择各社团中的度值最大的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410119140.0A CN103942141A (zh) | 2014-03-27 | 2014-03-27 | 一种检测应用程序的性能的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410119140.0A CN103942141A (zh) | 2014-03-27 | 2014-03-27 | 一种检测应用程序的性能的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103942141A true CN103942141A (zh) | 2014-07-23 |
Family
ID=51189814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410119140.0A Pending CN103942141A (zh) | 2014-03-27 | 2014-03-27 | 一种检测应用程序的性能的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942141A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766216A (zh) * | 2016-08-19 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种用于获取应用执行信息的方法与设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037881A1 (en) * | 2007-07-31 | 2009-02-05 | Caterpillar Inc. | Systems and methods for testing the functionality of a web-based application |
CN103186463A (zh) * | 2011-12-30 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 确定软件的测试范围的方法和系统 |
-
2014
- 2014-03-27 CN CN201410119140.0A patent/CN103942141A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037881A1 (en) * | 2007-07-31 | 2009-02-05 | Caterpillar Inc. | Systems and methods for testing the functionality of a web-based application |
CN103186463A (zh) * | 2011-12-30 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 确定软件的测试范围的方法和系统 |
Non-Patent Citations (1)
Title |
---|
张锡哲 等: "面向复杂软件执行网络的关键节点行为分析", 《小型微型计算机系统》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766216A (zh) * | 2016-08-19 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种用于获取应用执行信息的方法与设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10983856B2 (en) | Identifying root causes of performance issues | |
CN107005438B (zh) | 生成动态地可缩放网络负载的方法、系统和介质 | |
US10909018B2 (en) | System and method for end-to-end application root cause recommendation | |
US10432491B2 (en) | Control device for estimation of power consumption and energy efficiency of application containers | |
CN104185840A (zh) | 持续部署流水线测试的优先化 | |
Barve et al. | Fecbench: A holistic interference-aware approach for application performance modeling | |
WO2019120093A1 (en) | Cardinality estimation in databases | |
Lockhart et al. | Scission: Performance-driven and context-aware cloud-edge distribution of deep neural networks | |
CN103713935A (zh) | 一种在线管理Hadoop集群资源的方法和装置 | |
Cheng et al. | Tuning configuration of apache spark on public clouds by combining multi-objective optimization and performance prediction model | |
EP3053311A1 (en) | Systems and methods for distance approximation in graphs | |
CN112819258A (zh) | 银行网点到店客户数量预测方法及装置 | |
CN102932389B (zh) | 一种请求处理方法、装置及服务器系统 | |
CN103152212B (zh) | 一种告警相关性分析方法、装置及网络管理系统 | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
CN103942141A (zh) | 一种检测应用程序的性能的方法和装置 | |
Bhatele et al. | Applying graph partitioning methods in measurement-based dynamic load balancing | |
CN112703485A (zh) | 使用机器学习方法支持对分布式系统内的计算环境的修改的实验评估 | |
CN109978172B (zh) | 一种基于极限学习机的资源池利用率预测方法及装置 | |
CN115525394A (zh) | 容器数量的调整方法及装置 | |
EP3901762B1 (en) | Distributed processing assistance apparatus, distributed processing assistance method, and program | |
CN113656046A (zh) | 一种应用部署方法和装置 | |
Salmins et al. | Data management in TestBed for large scale wireless sensor networks | |
Kousiouris et al. | A Multi-Cloud Framework for Measuring and Describing Performance Aspects of Cloud Services Across Different Application Types. | |
CN112073517B (zh) | 一种分布式数据传输优化方法、系统及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140723 |