CN106250292B - 一种办公管理系统性能监控平台 - Google Patents

一种办公管理系统性能监控平台 Download PDF

Info

Publication number
CN106250292B
CN106250292B CN201610655418.5A CN201610655418A CN106250292B CN 106250292 B CN106250292 B CN 106250292B CN 201610655418 A CN201610655418 A CN 201610655418A CN 106250292 B CN106250292 B CN 106250292B
Authority
CN
China
Prior art keywords
module
log
subsystem
analysis
memory
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.)
Active
Application number
CN201610655418.5A
Other languages
English (en)
Other versions
CN106250292A (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.)
Shanghai Pan Micro Network Polytron Technologies Inc
Original Assignee
Shanghai Pan Micro Network Polytron Technologies Inc
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 Shanghai Pan Micro Network Polytron Technologies Inc filed Critical Shanghai Pan Micro Network Polytron Technologies Inc
Priority to CN201610655418.5A priority Critical patent/CN106250292B/zh
Publication of CN106250292A publication Critical patent/CN106250292A/zh
Application granted granted Critical
Publication of CN106250292B publication Critical patent/CN106250292B/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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;警告、干预子系统,包括警告模块和强制干预模块。本发明可以对正在运行的生成系统进行及时分析,不需要部署,不用引入第三方的特殊依赖,只需要使用系统本来就运行其上的jdk的自带工具就可以实现,同时通过开发一下的日志分析工具,可以时候对日志进行智能分析,协助排查宕机问题和性能问题的原因,完成数据的监控和采集,对系统性能影响很小,保证生产系统不会受到监控工具本身的影响。

Description

一种办公管理系统性能监控平台
技术领域
本发明涉及一种基于java代理的一种sql语句的监控方法,以及继续线程日志的性能、宕机分析方法,尤其是指一种办公管理系统性能监控平台。
背景技术
由于现有的公司的办公管理系统越来越复杂,用户的并发量也越来越大,使系统不稳定,容易宕机。因此系统的稳定性变得越来越重要,需要有一套好的机制来监控系统的运行状况,同时也需要有一套分析方法,能够事后快速定位宕机问题的原因,及时的修补标准产品的重大宕机bug,以保证系统的稳定性。当前已有的用于解决该稳定的工具为:第三方的jprofiler、btrace,这些工具比较重量级,部署复杂,甚至需要大量开发。现有技术中,由于没有很好的图形化界面,主要是通过命令行以及一些日志分析工具进行问题分析,主要通过用户技术开发人员分析系统宕机和性能问题。
发明内容
为了解决上述问题,本发明提供了一种办公管理系统性能监控平台,其目的在于解决现有技术不能很好地对办公管理系统的稳定性进行监控、分析的问题。
一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;
所述日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;
其中,内存日志采集模块,使用JVM Management API采集当前办公管理系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间。
SQL执行日志采集模块,采用java代理,动态修改字节码。考虑到要监控系统运行的sql语句,必须修改系统的数据库包装类,而不同的OA软件版本该包装类可能不一样,如果直接修改,就没办法通过直接覆盖的方式部署性能监控平台,因此通过字节码方式,动态的在运行期在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:执行时间超过10秒的sql语句和返回数据量超过10000条的sql语句,其中10和10000都是可配置的,打印日志的同时打印出当时的线程堆栈,判断sql语句具体在代码的位置。
以上的日志采集的信息包含了系统运行的所有状态信息,通过分析这些日志就可以判断出当前办公管理系统运行的状态,以及系统性能和宕机问题的原因。
所述日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;
其中,性能瓶颈分析模块,基于Jprofiler工具通过分析一段时间的线程日志,判断程序执行的瓶颈点,一次来协助开发人员对程序进行优化。
算法使用的基本原理是:通过统计一段时间的线程日志中和某个程序(要分析的程序)的相关线程,找到这些线程正在运行的代码行(正在运行的点),然后统计出这些运行点的数量,由于线程基本上是随机获取的,因此有如下原理:某个运行点(代码行)出现的次数越多,代表其运行的越慢(或者运行的次数越多),瓶颈度越大,按照数量倒排序就可以统计出上面的瓶颈参考信息,同时结合堆栈的层级结构,就可以把瓶颈信息以树形的结构展示出来。
线程执行分析模块,基于longtime工具进行分析。给定一段时间的线程日志,分析出这段时间运行比较慢的程序,以及这些运行较慢的程序的相关信息,通过图形的方式直观表现,统计出程序连续的执行时间。
算法的基本原理是:如果在同一个线程里(线程号相等)而且连续的两个线程日志中发现相同的程序,则认为这个程序在这两个线程日志中间的时间里也一直存在于这个线程内,因为web应用服务器的线程池里一般有1000多个线程,新的请求是随机的,一个请求第一次在某个线程,结束后下个请求会随机再分配一个线程处理,如果是两个不同的程序,连续紧接着被分配到同一个线程的概率只有1/1000*1000,如果连续三次,则概率为1/1000*1000*1000,概率极小,因此通过离散的线程日志,可以统计出程序连续的执行时间。
内存分析模块,分析JVM内存,根据内存的老年代的变化曲线判定系统是否已经内存溢出,计算老年代的占比是否正常,若垃圾回收后占比大于90%,则表示内存即将溢出,进行预警,若垃圾回收后占比大于99%,则系统已经宕机,需要立即通知或强制干预重启系统。
所述警告、干预子系统,包括警告模块和强制干预模块,
其中,警告模块通过SMS短信发送至代理接口进行短信的提醒发送,通过办公管理系统提供的webservice接口动态创建内部流程进行提醒。
强制干预模块通过Resin提供的Resin.restart() 方法进行web应用服务器的重启操作。
通过警告和强制干预,可以最小化的降低系统异常对用户造成的影响。
本发明对比现有技术具有以下优势:1、可以对正在运行的生成系统进行及时分析,2、不需要部署,不用引入第三方的特殊依赖,只需要使用系统本来就运行其上的 jdk的自带工具就可以实现,同时通过开发一下的日志分析工具,可以时候对日志进行智能分析,协助排查宕机问题和性能问题的原因,完成数据的监控和采集,3、对系统性能影响很小,保证生产系统不会受到监控工具本身的影响。
附图说明
图1为办公管理系统性能监控平台的示意图。
具体实施方式
本发明的具体实施方式如下:
一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;
所述日志采集子系统分为内存日志采集模块1、线程日志采集模块2和SQL执行日志采集模块3;
其中,内存日志采集模块1,使用JVM Management API采集当前办公管理系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间。
使用如下方法即可获得:
ManagementFactory.getMemoryPoolMXBeans().get(0);
List beans = ManagementFactory.getMemoryPoolMXBeans();
String bname;
for (MemoryPoolMXBean bean : beans) {
bname = bean.getName().toLowerCase();
if (bname.indexOf("Eden Space".toLowerCase()) != -1) {
MemoryUsage usage = bean.getUsage();
this.mb.setECommitted(usage.getCommitted() / 1024L);
this.mb.setEUsed(usage.getUsed() / 1024L);
} else if (bname.indexOf("Survivor Space".toLowerCase()) != -1) {
MemoryUsage usage = bean.getUsage();
this.mb.setSCommitted(this.mb.getSCommitted() +usage.getCommitted() / 1024L);
this.mb.setSUsed(this.mb.getSUsed() + usage.getUsed() /1024L);
} else if ((bname.indexOf("Tenured Gen".toLowerCase()) != -1) ||(bname.indexOf("Old Gen".toLowerCase()) != -1)) {
MemoryUsage usage = bean.getUsage();
this.mb.setTCommitted(this.mb.getTCommitted() +usage.getCommitted() / 1024L);
this.mb.setTUsed(this.mb.getTUsed() + usage.getUsed() /1024L);
} else {
if (bname.indexOf("Perm Gen".toLowerCase()) == -1)
continue;
MemoryUsage usage = bean.getUsage();
this.mb.setPCommitted(usage.getCommitted() / 1024L);
this.mb.setPUsed(usage.getUsed() / 1024L);
}
}
获取到的信息以如下的格式存放:
其中临时(S)、年轻(E)、年老(O)、持久(P):为百分比。
YGC:年轻带E进行垃圾回收的次数;
YGCT:年轻带E进行垃圾回收耗费的总时间;
FGC:年老带O进行垃圾回收的次数;
FGCT:年老带O进行垃圾回收耗费的总时间;
GCT:垃圾回收耗费的总时间。
以上信息使用文本文件存储,文件名称为 memory-日期.txt 每天对应一个文件。
线程日志采集模块2,通过ManagementFactory.getThreadMXBean().getAllThreadIds() 可得到所有线程的信息;然后按照如下的格式输出到文本文件: "http--80-3$902494946" id="1362" CPU Time=460000000
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at com.caucho.vfs.QServerSocketWrapper.accept(QServerSocketWrapper.java:91)
at com.caucho.server.port.Port.accept(Port.java:1179)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:659)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
其中包括日志生成时间、线程号、线程占用的cpu时间、线程的堆栈、线程的运行状态。
其他剩余信息都可以通过对应的api 获得,线程日志每个5分钟生成一个文件,每天生成一个thread-日期 名字的目录。
SQL执行日志采集模块3,采用java代理,动态修改字节码。考虑到要监控系统运行的sql语句,必须修改系统的数据库包装类,而不同的OA软件版本该包装类可能不一样,如果直接修改,就没办法通过直接覆盖的方式部署性能监控平台,因此通过字节码方式,动态的在运行期在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:执行时间超过10秒的sql语句和返回数据量超过10000条的sql语句,其中10和10000都是可配置的,打印日志的同时打印出当时的线程堆栈,判断sql语句具体在代码的位置。
日志分别输出在下面两个文件:
时间超时:sqltime-日期.txt;
日期超时:sqlcount-日期.txt;
日志格式如下:
2016-03-14 00:02:24 time=18736:count=1:[这里显示具体的sql语句]
java.lang.Throwable
at weaver.monitor.monitor.SQLExeMonitor.logCount(SQLExeMonitor.java:49)
at weaver.conn.aop.RecordSetAop.executeSql_after(RecordSetAop.java:23)
at weaver.conn.RecordSet.executeSql(RecordSet.java:259)
at weaver.login.LicenseCheckLogin.setOutLineDate(LicenseCheckLogin.java:83)
at weaver.workflow.msg.MsgUtil.getPopupMsg(MsgUtil.java:34)
at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:170)
at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:552)
at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
其中包括SQL执行时间、SQL执行耗费的时间、SQL返回的数据量、具体的SQL语句和SQL语句在代码中的位置。
以上的日志采集的信息包含了系统运行的所有状态信息,通过分析这些日志就可以判断出当前办公管理系统运行的状态,以及系统性能和宕机问题的原因。
所述日志分析子系统包括性能瓶颈分析模块4、线程执行分析模块5和内存分析模块6;
其中,性能瓶颈分析模块4,基于Jprofiler工具通过分析一段时间的线程日志,判断程序执行的瓶颈点,以此来协助开发人员对程序进行优化。这个工具的输出结果如下:
从上到下列出了依次最耗费cpu的代码行。
算法使用的基本原理是:通过统计一段时间的线程日志中和某个程序(要分析的程序)的相关线程,找到这些线程正在运行的代码行(正在运行的点),然后统计出这些运行点的数量,由于线程基本上是随机获取的,因此有如下原理:某个运行点(代码行)出现的次数越多,代表其运行的越慢(或者运行的次数越多),瓶颈度越大,按照数量倒排序就可以统计出上面的瓶颈参考信息,同时结合堆栈的层级结构,就可以把瓶颈信息以树形的结构展示出来。
线程执行分析模块5,基于longtime工具进行分析。给定一段时间的线程日志,分析出这段时间运行比较慢的程序,以及这些运行较慢的程序的相关信息,通过图形的方式直观表现,统计出程序连续的执行时间。
输出代表运行程序的图形:长度代表时间,位置代表执行开始时间,鼠标放到该图形上会显示程序的详细信息。以便查看运行较慢的程序及其运行时长,运行时间。
算法的基本原理是:如果在同一个线程里(线程号相等)而且连续的两个线程日志中发现相同的程序,则认为这个程序在这两个线程日志中间的时间里也一直存在于这个线程内,因为web应用服务器的线程池里一般有1000多个线程,新的请求是随机的,一个请求第一次在某个线程,结束后下个请求会随机再分配一个线程处理,如果是两个不同的程序,连续紧接着被分配到同一个线程的概率只有1/1000*1000,如果连续三次,则概率为1/1000*1000*1000,概率极小,因此通过离散的线程日志,可以统计出程序连续的执行时间。
内存分析模块6,分析JVM内存,根据内存的老年代的变化曲线判定系统是否已经内存溢出,计算老年代的占比是否正常,若垃圾回收后占比大于90%,则表示内存即将溢出,进行预警,若垃圾回收后占比大于99%,则系统已经宕机,需要立即通知或强制干预重启系统。
所述警告、干预子系统,包括警告模块7和强制干预模块8,
其中,警告模块7通过SMS短信发送代理接口进行短信的提醒发送,通过办公管理系统提供的webservice接口动态创建内部流程进行提醒。
强制干预模块8通过Resin提供的Resin.restart() 方法进行web应用服务器的重启操作。
通过警告和强制干预,可以最小化的降低系统异常对用户造成的影响。
上述描述已经详细阐述了发明的说明和描述。它不是为了将本发明限制为所披露的形式和方式。按照以上的方式,可以进行相应的修改或更改。讨论实例是为了更好地说明本发明的原理及其实用性,从而利用本发明进行各种修改并满足其它特定的需求。所有这些修改和变化当依照公平和合法的权利解读,并且根据附加权利要求,这些修改和变化都属于本发明的范围内。

Claims (1)

1.一种办公管理系统性能监控平台,其特征在于:包括日志采集子系统、日志分析子系统和警告、干预子系统;
所述日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;
其中,内存日志采集模块,使用JVM Management API采集当前办公管理系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间;
线程日志采集模块,通过ManagementFactory.getThreadMXBean().getAllThreadIds() 可得到所有线程的信息;
SQL执行日志采集模块,采用java代理,动态修改字节码,在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:执行时间超过10秒的sql语句和返回数据量超过10000条的sql语句,其中10和10000都是可配置的,打印日志的同时打印出当时的线程堆栈,判断sql语句具体在代码中的位置;
所述日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;
其中,性能瓶颈分析模块,基于Jprofiler工具通过分析一段时间的线程日志,判断程序执行的瓶颈点;
线程执行分析模块,基于longtime工具统计出程序连续的执行时间;
内存分析模块,分析JVM内存,根据内存的老年代的变化曲线判定系统是否已经内存溢出,计算老年代的占比,若垃圾回收后占比大于90%,则表示内存即将溢出,进行预警,若垃圾回收后占比大于99%,则系统已经宕机,需要立即通知或强制干预重启系统;
所述警告、干预子系统,包括警告模块和强制干预模块,
其中,警告模块通过SMS短信发送至代理接口进行短信的提醒发送,通过办公管理系统提供的webservice接口动态创建内部流程进行提醒;
强制干预模块通过Resin提供的Resin.restart() 方法进行web应用服务器的重启操作。
CN201610655418.5A 2016-08-11 2016-08-11 一种办公管理系统性能监控平台 Active CN106250292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610655418.5A CN106250292B (zh) 2016-08-11 2016-08-11 一种办公管理系统性能监控平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610655418.5A CN106250292B (zh) 2016-08-11 2016-08-11 一种办公管理系统性能监控平台

Publications (2)

Publication Number Publication Date
CN106250292A CN106250292A (zh) 2016-12-21
CN106250292B true CN106250292B (zh) 2018-06-08

Family

ID=58079205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610655418.5A Active CN106250292B (zh) 2016-08-11 2016-08-11 一种办公管理系统性能监控平台

Country Status (1)

Country Link
CN (1) CN106250292B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032835B (zh) * 2017-06-08 2021-02-26 龙芯中科技术股份有限公司 软件再生方法与装置
CN107797901A (zh) * 2017-10-25 2018-03-13 四川长虹电器股份有限公司 一种堆栈分析以及邮件实时报警的实现方法
CN111585981B (zh) * 2020-04-24 2022-07-12 上海泛微网络科技股份有限公司 基于应用防火墙的安全检测方法及相关设备
CN112685164B (zh) * 2021-01-08 2023-04-04 浪潮软件科技有限公司 基于dac定时任务发送日报的方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021437A (en) * 1996-07-17 2000-02-01 Bull S.A. Process and system for real-time monitoring of a data processing system for its administration and maintenance support in the operating phase
JP2008097484A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd ログ管理システムおよびフォレンジック調査方法
CN101645032A (zh) * 2009-08-31 2010-02-10 金蝶软件(中国)有限公司 应用服务器的性能分析方法和应用服务器
CN102122263A (zh) * 2011-03-23 2011-07-13 成都勤智数码科技有限公司 一种java应用系统运行时监控方法和装置
CN102360328A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 程序监控装置和程序监控方法
CN104346255A (zh) * 2014-10-21 2015-02-11 浪潮集团有限公司 一种云计算中自动监测进程内存使用情况的方法
CN104503891A (zh) * 2014-12-10 2015-04-08 北京京东尚科信息技术有限公司 对jvm线程进行在线监控的方法和装置
CN104991853A (zh) * 2015-07-22 2015-10-21 北京京东尚科信息技术有限公司 一种输出预警信息的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的系统和方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021437A (en) * 1996-07-17 2000-02-01 Bull S.A. Process and system for real-time monitoring of a data processing system for its administration and maintenance support in the operating phase
JP2008097484A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd ログ管理システムおよびフォレンジック調査方法
CN101645032A (zh) * 2009-08-31 2010-02-10 金蝶软件(中国)有限公司 应用服务器的性能分析方法和应用服务器
CN102122263A (zh) * 2011-03-23 2011-07-13 成都勤智数码科技有限公司 一种java应用系统运行时监控方法和装置
CN102360328A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 程序监控装置和程序监控方法
CN104346255A (zh) * 2014-10-21 2015-02-11 浪潮集团有限公司 一种云计算中自动监测进程内存使用情况的方法
CN104503891A (zh) * 2014-12-10 2015-04-08 北京京东尚科信息技术有限公司 对jvm线程进行在线监控的方法和装置
CN104991853A (zh) * 2015-07-22 2015-10-21 北京京东尚科信息技术有限公司 一种输出预警信息的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jprofiler监控远程项目安装步骤;hedream01;《https://wenku.baidu.com/view/99a0c13710661ed9ad51f395?pcf=2》;20110415;第1-16页 *

Also Published As

Publication number Publication date
CN106250292A (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
Kabinna et al. Examining the stability of logging statements
Ying et al. Predicting source code changes by mining change history
CN106250292B (zh) 一种办公管理系统性能监控平台
Aharon et al. One graph is worth a thousand logs: Uncovering hidden structures in massive system event logs
Pietrantuono et al. Software reliability and testing time allocation: An architecture-based approach
Gupta et al. Package level cohesion measurement in object-oriented software
Queille et al. The impact analysis task in software maintenance: A model and a case study
WO2005024669A1 (en) Self-managing database architecture
US8095514B2 (en) Treemap visualizations of database time
US10657028B2 (en) Method for replicating production behaviours in a development environment
US20210200740A1 (en) System and method for processing logs
Almaghairbe et al. Separating passing and failing test executions by clustering anomalies
Silva Souza et al. Monitoring strategic goals in data warehouses with awareness requirements
Offutt et al. Quantitatively measuring object-oriented couplings
Tarvo Mining software history to improve software maintenance quality: A case study
Madhavan et al. Predicting buggy changes inside an integrated development environment
CN113778740B (zh) 一种基于垃圾回收日志的异常处理方法及装置
Budde et al. Analysis of non-Markovian repairable fault trees through rare event simulation
Cini et al. A methodology for comparing the reliability of GPU-based and CPU-based HPCs
US20030018960A1 (en) System and a method of sorting perfomance data from one or more system configurations
Popoola et al. Classifying changes to models via changeset metrics
Copty et al. Transaction level statistical analysis for efficient micro-architectural power and performance studies
Tian et al. Towards framework-independent, non-intrusive performance characterization for dataflow computation
Zapalowski et al. The WGB method to recover implemented architectural rules
Raja et al. Classification of software patches: a text mining approach

Legal Events

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