CN113176905B - 一种基于机器学习的通用ide性能优化方法及系统 - Google Patents
一种基于机器学习的通用ide性能优化方法及系统 Download PDFInfo
- Publication number
- CN113176905B CN113176905B CN202110444665.1A CN202110444665A CN113176905B CN 113176905 B CN113176905 B CN 113176905B CN 202110444665 A CN202110444665 A CN 202110444665A CN 113176905 B CN113176905 B CN 113176905B
- Authority
- CN
- China
- Prior art keywords
- ide
- user
- general
- plug
- general ide
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于机器学习的通用IDE性能优化方法及系统,通过采集不同类型的用户在使用通用IDE时的多种行为习惯构建训练样本库,精确刻画了通用IDE用户的行为特征,从而有效提高了基于机器学习的通用IDE用户分类模型的分类精度;基于对通用IDE用户的精确分类,确定出该用户启动通用IDE时的插件列表,根据该插件列表实现通用IDE的启动,从而有效提高了通用IDE的启动性能,解决了通用IDE在使用过程中由工作空间变大导致的启动缓慢的问题。
Description
技术领域
本发明属于计算机软件开发技术领域,具体涉及一种基于机器学习的通用IDE性能优化方法及系统。
背景技术
本发明中通用IDE(Integrated Development Environment)是指基于插件的、支持多种编程语言的通用集成开发环境,例如,Visual Studio、Eclipse等。其中,Eclipse是一个跨平台的集成开发环境,主要用于通过插件组件构建开发环境及开发计算机软件,支持Java、C++和Python等编程语言。由于通用IDE集合了大量插件,有些插件是某类开发人员不经常使用的,甚至是不使用的功能,但是通常情况下通用IDE在启动过程中也会默认加载这些插件,因此会拖慢通用IDE的启动速度。此外,随着用户使用的增多,打开的插件数量会随之增多,通用IDE的工作环境会变得越来越复杂,这将导致通用IDE的工作空间变得越来越大、运行速度越来越慢,甚至出现卡顿的情况,在很大程度上降低了计算机软件开发的效率。
发明内容
有鉴于此,本发明提供了一种基于机器学习的通用IDE性能优化方法及系统,能够针对不同类型的用户自动匹配通用IDE的加载项,实现了通用IDE快速启动及高效运行。
本发明提供的一种基于机器学习的通用IDE性能优化方法,包括以下步骤:
在用户使用通用IDE过程中采集用户的行为特征,以用户类型标注所述行为特征形成训练样本集;建立基于机器学习的通用IDE用户分类模型,采用所述训练样本集训练所述通用IDE用户分类模型;使用训练得到的通用IDE用户分类模型确定新通用IDE用户的类型,根据所述新通用IDE用户的类型确定通用IDE启动时所需要加载的插件列表,所述新通用IDE用户根据所述插件列表再次启动通用IDE,实现通用IDE启动性能的优化。
进一步地,所述用户类型采用二元组(AppType,LanguageType)表示,其中,AppType为用户开发软件的类型,LanguageType为用户开发软件所采用的编程语言。
进一步地,所述行为特征包括通用IDE用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、插件的状态及插件的使用时间。
进一步地,所述在用户使用通用IDE过程中采集用户的行为特征的过程,还包括:剔除所述行为特征中与公用插件相关的信息,所述公用插件是为通用IDE提供公用基础功能的插件。
进一步地,所述以用户类型标注所述行为特征形成训练样本集的过程,还包括:将采集到的行为特征转换为字符分隔值文件格式的通用IDE用户行为特征文件,再将所述通用IDE用户行为特征文件分割为训练数据和测试数据,对所述训练数据和测试数据进行标准化处理,形成所述训练样本集。
进一步地,所述基于机器学习的通用IDE用户分类模型为基于线性回归算法建立的通用IDE用户分类模型。
进一步地,所述采用所述训练样本集训练所述通用IDE用户分类模型的过程,还包括:
步骤7.1、采用Sklearn中的模型评价算法F1_score对训练得到所述通用IDE用户分类模型进行评分;
步骤7.2、若评分大于或等于阈值,则所述通用IDE用户分类模型训练完毕,结束本流程;若评分小于阈值且替代算法列表不为空,则选择替代算法列表中未被选择的替代算法重建通用IDE用户分类模型,将选择的替代算法从所述替代算法列表中删除,完成通用IDE用户分类模型的训练,执行步骤7.1;若评分小于阈值且替代算法列表为空,则执行步骤7.3;
步骤7.3、在基于不同算法建立的通用IDE用户分类模型中,选择评分最高的模型进行调参训练,采用Sklearn中的模型评价算法F1_score对训练得到所述通用IDE用户分类模型进行评分,若评分大于或等于阈值,则所述通用IDE用户分类模型训练完毕,结束本流程;若评分小于阈值,则在基于不同算法建立的通用IDE用户分类模型中,选择评分最高的模型作为最终的通用IDE用户分类模型,结束本流程。
进一步地,所述通用IDE性能优化方法还包括,在所述新通用IDE用户启动通用IDE后,监控所述插件列表中插件的状态,当插件处于运行状态且无用户点击行为的时间大于阈值时,则将插件的状态由运行设定为停止。
本发明提供的一种基于机器学习的通用IDE性能优化系统,包括通用IDE用户行为特征采集模块、通用IDE用户行为特征预处理模块、通用IDE用户分类模块、通用IDE启动优化模块、通用IDE运行监控模块及通用IDE运行优化模块;
其中,所述通用IDE用户行为特征采集模块,用于按照通用IDE用户类型采集用户使用通用IDE时的行为特征,形成通用IDE用户行为特征集;所述通用IDE用户类型定义为由用户开发软件的类型及使用的编程语言构成的二元组,所述行为特征包括用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、插件的状态及插件的使用时间;
所述通用IDE用户行为特征预处理模块,用于将所述通用IDE用户行为特征采集模块输出的所述通用IDE用户行为特征集中的数据转换为通用IDE用户行为特征文件,并将所述通用IDE用户行为特征文件分割为训练数据和测试数据,再将所述训练数据和测试数据进行标准化处理后形成通用IDE用户分类训练样本集;
所述通用IDE用户分类模块,用于采用通用IDE用户分类模型对通用IDE用户分类得到通用IDE用户的类型,采用所述通用IDE用户行为特征预处理模块输出的通用IDE用户分类训练样本集完成对所述通用IDE用户分类模型的训练;对于新通用IDE用户,则将所述通用IDE用户行为特征采集模块获取的新通用IDE用户的行为特征输入所述通用IDE用户分类模块,得到的输出即为新通用IDE用户的用户类型;
所述通用IDE启动优化模块,用于根据所述通用IDE用户分类模块输出的用户类型,匹配通用IDE启动所需的插件列表,当用户再次启动通用IDE时则使用所述插件列表进行启动;
所述通用IDE运行监控模块,用于根据所述通用IDE启动优化模块得到的所述插件列表,在用户运行通用IDE阶段监测所述插件列表中插件的状态;
所述通用IDE运行优化模块,用于根据所述通用IDE运行监控模块输出的状态对插件进行控制,即若插件的状态为运行且无用户点击行为的时间大于阈值,则将插件的状态设置为停止。
进一步地,所述通用IDE用户行为特征采集模块具有剔除所述通用IDE用户行为特征集中公用插件的相关信息的功能。
有益效果:
本发明通过采集不同类型的通用IDE用户在使用通用IDE时的多种行为习惯,并以此构建训练样本库,精确刻画了通用IDE用户的行为特征,从而有效提高了基于机器学习的通用IDE用户分类模型的分类精度;基于对通用IDE用户的精确分类,确定出该用户启动通用IDE时的插件列表,根据该插件列表实现通用IDE的启动,从而有效提高了启动性能,解决了通用IDE在使用过程中由工作空间变大导致的启动缓慢的问题。
附图说明
图1为本发明提供的一种基于机器学习的通用IDE性能优化方法的流程图。
图2为本发明提供的一种基于机器学习的通用IDE性能优化系统的结构图。
具体实施方式
本发明提供的一种基于机器学习的通用IDE性能优化方法及系统,其基本思想是:通过对通用IDE用户进行层次化分类,采集不同类型用户使用通用IDE时的多种行为特征,以用户类型对上述行为特征进行标注形成训练样本库;建立基于机器学习的通用IDE用户分类模型,采用训练样本库完成对通用IDE用户分类模型的训练;使用训练得到的通用IDE用户分类模型确定新的通用IDE用户的类型,并根据通用IDE用户的类型确定通用IDE启动时所需要加载的插件,优化通用IDE的启动过程。
本发明提供的一种基于机器学习的通用IDE性能优化方法,方法流程如图1所示,具体包括以下步骤:
步骤1、定义通用IDE用户类型,采集不同类型通用IDE用户的行为特征,建立通用IDE用户行为特征集合。
本发明中,根据通用IDE用户所开发的软件涉及的应用领域及使用的编程语言,提出了层次化的通用IDE用户定义,具体包括:第一层为根据开发的软件的类型对通用IDE用户进行分类,包括:前端软件、后端软件、Android应用软件、QT卓面应用软件及嵌入式软件等;第二层为根据开发的软件所使用的编程语言对通用IDE用户进行分类,包括:Java工程师、C/C++工程师及Python工程师等。基于上述分类方式,通用IDE用户可采用二元组(AppType,LanguageType)来表示,其中,AppType为用户开发软件的类型,LanguageType为用户开发软件所采用的编程语言。用户开发软件类型与编程语言可采用表1预设的取值进行赋值:
用户开发软件类型 | 取值 | 编程语言 | 取值 |
前端软件 | 1 | Java语言 | 1 |
后端软件 | 2 | C/C++语言 | 2 |
Android应用软件 | 3 | Python语言 | 3 |
QT卓面应用软件 | 4 | ---- | -- |
嵌入式软件 | 5 | ---- | -- |
表1-用户类型表
例如,使用Java语言开发前端软件的Eclipse用户所对应的二元组为(1,1)。
本发明中,通用IDE用户行为特征集合的构建过程即为采集不同类型通用IDE用户使用通用IDE时的行为特征的过程,具体是:采集通用IDE用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、使用过程中所涉及插件的状态、插件的使用时间等信息。其中,菜单项包括主菜单、工具栏菜单、状态栏菜单、弹出式菜单、首选项菜单、透视图菜单等。通用IDE用户行为特征的采集可以通过监听鼠标事件实现,即在通用IDE用户启动IDE后,当监听到用户触发的鼠标事件时,包括单击和双击事件,则获取当前鼠标事件所涉及的菜单项名称,同时记录当前菜单项被点击的时间及次数,根据当前菜单项的名称查询当前菜单项所对应的插件名称,将当前插件名称添加到监测插件列表中,监测插件列表中所有插件的状态信息。本发明中,对于Eclipse集成开发环境,插件的运行状态可采用面向Java的动态模型系统(OSGI)来获取。
Eclipse插件的运行状态主要包括以下几种:INSTALLED,该状态为插件所需的本地资源已成功加载,使用数值“0”表示;RESOLVED,该状态为插件所涉及的依赖关系均已被满足,使用数值“1”表示;STARTING,该状态为插件所涉及的包正在启动运行,使用数值“2”表示;STOPPING,该状态为插件所涉及的包正在停止运行,使用数值“3”表示;ACTIVE,该状态为插件所需要的包已启动且正在运行中,使用数值“4”表示;UNINSTALLED,该状态为插件所需要的包已卸载且无法进入其他状态,使用数值“5”表示。
同时,本发明需要预先构建通用IDE菜单项名称表及插件名称表,例如,Eclipse的菜单项名称如表2所示,Eclipse的插件名称表如表3所示。
菜单按钮名称 | 菜单按钮ID | 所属插件ID |
运行配置 | 1 | 12 |
调试配置 | 2 | 12 |
切换断点 | 3 | 12 |
调试历史记录 | 4 | 12 |
断点类型 | 5 | 12 |
表2-Eclipse菜单项名称表
插件名称 | 插件标识 | 插件ID |
C/C++开发用户界面 | org.eclipse.cdt.managedbuilder.ui | 11 |
C/C++开发工具集调试 | org.eclipse.cdt.debug.core | 12 |
C/C++标准make构建核心 | org.eclipse.cdt.make.core | 13 |
….. | ….. | …. |
Java开发工具UI | org.eclipse.jdt.ui | 21 |
Java开发工具核心 | org.eclipse.jdt.core | 22 |
… | … | … |
Qt设计界面 | com.trollech.qtcppdesigner | 31 |
Qt项目插件 | com.trollech.qtcppproject | 32 |
表3-Eclipse插件名称表
采用上述通用IDE用户行为特征采集方式,采集不同类型的通用IDE用户在不同时段内的行为特征,形成分类的通用IDE用户行为特征集合。进一步地,为了提高模型的训练效果,本发明通过每小时收集一次行为特征的方式建立通用IDE用户行为集合。例如,Eclipse用户行为特征集合可采用表4所示的方式进行保存:
表4-Eclipse用户行为特征表
其中,用户类型为标签,插件ID、菜单项名称、菜单项点击次数、插件使用时间及插件运行转态等为输入,菜单项点击时间“1612425248S”为系统获取的带有日期的时间。上表的数据结构可以根据需要增加或删减字段。
进一步地,为了提高通用IDE用户行为特征集合的有效性,降低训练样本的噪声,本发明将集合中涉及到的公用插件的相关信息进行剔除。例如,根据Eclipse插件所提供的功能,可以将Eclipse插件分为公用插件、Java类插件、C\C++类插件、Python类插件等插件类型。其中,公用插件是指为Eclipse提供公用基础功能的插件,例如,帮助插件、编辑插件、欢迎插件,而Java类插件、C\C++类插件、Python类插件等插件则是针对某种编程语言特定的插件。通过维护包含插件名称、插件功能及插件类型的Eclipse插件列表,能够明确每个插件所具有的功能及其所属的类型,将获取到的Eclipse用户行为特征集合中的插件与Eclipse插件列表进行对比,从而识别出Eclipse用户行为特征集合中的公用类插件并将其相关的行为特征进行剔除。
步骤2、预处理通用IDE用户行为特征集合,形成通用IDE用户分类训练样本集。
本发明中通用IDE用户行为特征集合的预处理过程,包括以下步骤:
步骤2.1、将通用IDE用户行为特征集合中的数据转换为字符分隔值文件格式(Comma-Separated Values,CSV),形成通用IDE用户行为特征文件。
步骤2.2、将步骤2.1形成的通用IDE用户行为特征文件,进行分割形成训练数据和测试数据。
例如,首先采用Python的打开文件函数,即open()函数,读取Eclipse用户行为特征文件;然后,采用基于Python语言的机器学习工具Sklearn(Scikit-learn)的train_test_split()函数,将读入的数据进行分割,如随机采样20%的数据构建测试样本,其余的数据作为训练样本,形成训练数据和测试数据。
步骤2.3、将步骤2.2形成的训练数据和测试数据进行标准化处理,形成通用IDE用户分类训练样本集。
例如,采用Sklearn的StandardScaler()函数分别对训练数据和测试数据的特征及目标值进行标准化处理。
步骤3、基于机器学习方法建立通用IDE用户分类模型,采用步骤2形成的通用IDE用户分类样本集完成对通用IDE用户分类模型的训练。
本发明基于机器学习中的线性回归算法建立通用IDE用户分类模型,采用步骤2形成的通用IDE用户分类样本中的训练样本,采用Sklearn提供的训练函数完成通用IDE用户分类模型的训练;然后,再采用测试样本对训练得到的通用IDE用户分类模型进行测试。采用测试样本测试训练得到的通用IDE用户分类模型的过程,即为测试模型是否拟合测试样本的过程,一般通过计算精准率及召回率对模型进行评分,从而实现对模型分类效果的评估。
本发明采用Sklearn中的模型评价算法F1_score计算模型的得分,根据得分评价模型优劣,并输出评估结果。具体评价过程如下:
将测试样本输入训练得到的模型得到预测结果,F1_score算法根据样本类型统计预测结果得到每类样本的TP、FP及FN的数量,再采用计算模型对该类样本的精确率及召回率。其中,TP为同类样本中模型预测正确的正确样本的数量,FP为同类样本中模型预测错误的正确样本的数量,FN为同类样本中模型预测错误的错误样本的数量。
精准率(precision)即为同类样本中预测正确的正样本数量TP与预测正确的正确样本数量TP和预测错误的正确样本数量FP之和的比值,计算公式如下:
召回率(recall)即为同类样本中预测正确的正样本数量TP与预测正确的正确样本的数量TP和预测错误的错误样本的数量FN之和的比值,计算公式如下:
根据精准率(precision)和召回率(recall)采用如下公式计算模型对该类样本的F1分值:
然后,采用如下公式计算模型对所有类型样本的评分:
其中,n为测试样本中样本的类型总数量。
一般来说,通过设定score的阈值确定模型。例如,设定阈值为70%,即当score大于或等于70%则判断当前模型能够被用于通用IDE用户的分类;否则就更换机器学习算法,例如采用随机森林决策树算法构建通用IDE用户分类模型,再采用训练样本对新模型进行训练,然后采用测试样本对新模型进行测试,并采用F1_score方法计算新模型的评分score,若新模型的score大于或等于70%则选择新模型用于通用IDE用户的分类;否则采用参数调优的方法对两个模型中评分更接近70%的模型进行优化,若优化后模型的评分仍小于70%,则选择两个模型中评分较高的模型用于通用IDE用户的分类。
其中,调整模型参数对模型进行优化的过程为:采用复杂度曲线(验证集曲线)对线性回归算法中某个参数在取不同值时进行F1评估,通常设定一个取值范围,如随机森林决策树中max_depth参数设置从1-21。通过20次迭代复杂度曲线算法,记录输出的最优值,并以此次的max_depth参数作为线性回归模型训练的参数,以达到模型参数优化的效果。
步骤4、采用步骤3训练得到的通用IDE用户分类模型对新通用IDE用户进行分类。
对于新通用IDE用户,当该用户首次使用通用IDE时采集其所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、使用过程中所涉及插件的状态、插件的使用时间等信息。然后,将上述信息根据设定的对应关系转换为数值后输入步骤3中训练得到的通用IDE用户分类模型中,得到新通用IDE用户的类型。
步骤5、基于步骤4得到的新通用IDE用户的类型,确定通用IDE启动插件列表,并对启动后的通用IDE进行运行监控,优化通用IDE的性能。
例如,基于步骤4得到的新Eclipse用户的类型,根据预先定义的各类用户所对应的启动Eclipse时所需加载插件的列表,确定该新Eclipse用户启动Eclipse时所需加载的插件列表,在该新Eclipse用户下次启动Eclipse时按照确定的插件列表启动即可实现Eclipse的启动优化。
为了进一步优化通用IDE的性能,本发明还提出了基于插件列表的通用IDE运行时性能优化方式,即在通用IDE启动后,根据上述插件列表监测插件的运行状态,若插件处于运行状态且无用户点击行为的时间大于设定阈值时,则将该插件的运行状态由运行变成停止,以释放该插件所占用的资源,达到优化的运行速度的目的。
基于本发明提供的一种基于机器学习的通用IDE性能优化方法,本发明设计了一种基于机器学习的通用IDE性能优化系统,其结构如图2所示,包括通用IDE用户行为特征采集模块、通用IDE用户行为特征预处理模块、通用IDE用户分类模块、通用IDE启动优化模块、通用IDE运行监控模块及通用IDE运行优化模块。
其中,通用IDE用户行为特征采集模块,用于根据定义的通用IDE用户类型在用户使用通用IDE时采集用户行为特征,本发明采用包含开发软件类型及使用的编程语言的二元组来定义通用IDE用户,根据定义的用户类型通用IDE用户行为特征采集模块采集通用IDE用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、使用过程中所涉及插件的状态、插件的使用时间等信息,形成通用IDE用户行为特征集合。此外,为了提高通用IDE用户行为特征集合的有效性,降低训练样本的噪声,本发明还在通用IDE用户行为特征采集模块中增加了剔除集合中涉及到的公用插件的相关信息的功能。
通用IDE用户行为特征预处理模块,用于将通用IDE用户行为特征采集模块形成的通用IDE用户行为特征集合中的数据转换为字符分隔值文件格式(CSV),形成通用IDE用户行为特征文件,并将通用IDE用户行为特征文件分割为训练数据和测试数据,再将训练数据和测试数据进行标准化处理,形成通用IDE用户分类训练样本集。
通用IDE用户分类模块,用于基于机器学习中的线性回归算法建立的通用IDE用户分类模型实现对通用IDE用户的分类,其中,通用IDE用户分类模型的训练过程为:采用通用IDE用户行为特征预处理模块输出的通用IDE用户分类训练样本集完成训练;通用IDE用户分类模块的应用过程为:则以通用IDE用户行为特征采集模块获取的新通用IDE用户的行为特征作为输入,输出新通用IDE用户的用户类型。
通用IDE启动优化模块,用于根据通用IDE用户分类模块输出的新通用IDE用户的用户类型,选择匹配的插件列表,在该新通用IDE用户再次启动通用IDE时使用该插件列表进行通用IDE的启动优化。
通用IDE运行监控模块,用于根据通用IDE启动优化模块得到的插件列表,在该新通用IDE用户运行通用IDE阶段监测插件列表中的插件的运行状态。
通用IDE运行优化模块,用于根据通用IDE运行监控模块输出的插件运行状态对插件进行控制,即若插件处于运行状态且无用户点击行为的时间大于设定阈值时,则将该插件的运行状态由运行变成停止。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于机器学习的通用IDE性能优化方法,其特征在于,包括以下步骤:
在用户使用通用IDE过程中采集用户的行为特征,以用户类型标注所述行为特征形成训练样本集;建立基于机器学习的通用IDE用户分类模型,采用所述训练样本集训练所述通用IDE用户分类模型;将采集到的新通用IDE用户的行为特征输入训练得到的通用IDE用户分类模型,通用IDE用户分类模型的输出即为新通用IDE用户的类型,根据所述新通用IDE用户的类型确定通用IDE启动时所需要加载的插件列表,所述新通用IDE用户根据所述插件列表再次启动通用IDE,实现通用IDE启动性能的优化;
所述行为特征包括通用IDE用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、插件的状态及插件的使用时间;
所述用户类型由用户开发软件的类型及用户开发软件所采用的编程语言定义。
2.根据权利要求1所述的通用IDE性能优化方法,其特征在于,所述用户类型采用二元组(AppType,LanguageType)表示,其中,AppType为所述用户开发软件的类型,LanguageType为所述用户开发软件所采用的编程语言。
3.根据权利要求1所述的通用IDE性能优化方法,其特征在于,所述在用户使用通用IDE过程中采集用户的行为特征的过程,还包括:剔除所述行为特征中与公用插件相关的信息,所述公用插件是为通用IDE提供公用基础功能的插件。
4.根据权利要求1所述的通用IDE性能优化方法,其特征在于,所述以用户类型标注所述行为特征形成训练样本集的过程,还包括:将采集到的行为特征转换为字符分隔值文件格式的通用IDE用户行为特征文件,再将所述通用IDE用户行为特征文件分割为训练数据和测试数据,对所述训练数据和测试数据进行标准化处理,形成所述训练样本集。
5.根据权利要求1所述的通用IDE性能优化方法,其特征在于,所述基于机器学习的通用IDE用户分类模型为基于线性回归算法建立的通用IDE用户分类模型。
6.根据权利要求5所述的通用IDE性能优化方法,其特征在于,所述采用所述训练样本集训练所述通用IDE用户分类模型的过程,还包括:
步骤7.1、采用Sklearn中的模型评价算法F1_score对训练得到所述通用IDE用户分类模型进行评分;
步骤7.2、若评分大于或等于阈值,则所述通用IDE用户分类模型训练完毕,结束本流程;若评分小于阈值且替代算法列表不为空,则选择替代算法列表中未被选择的替代算法重建通用IDE用户分类模型,将选择的替代算法从所述替代算法列表中删除,完成通用IDE用户分类模型的训练,执行步骤7.1;若评分小于阈值且替代算法列表为空,则执行步骤7.3;
步骤7.3、在基于不同算法建立的通用IDE用户分类模型中,选择评分最高的模型进行调参训练,采用Sklearn中的模型评价算法F1_score对训练得到所述通用IDE用户分类模型进行评分,若评分大于或等于阈值,则所述通用IDE用户分类模型训练完毕,结束本流程;若评分小于阈值,则在基于不同算法建立的通用IDE用户分类模型中,选择评分最高的模型作为最终的通用IDE用户分类模型,结束本流程。
7.根据权利要求1所述的通用IDE性能优化方法,其特征在于,所述通用IDE性能优化方法还包括,在所述新通用IDE用户启动通用IDE后,监控所述插件列表中插件的状态,当插件处于运行状态且无用户点击行为的时间大于阈值时,则将插件的状态由运行设定为停止。
8.一种基于机器学习的通用IDE性能优化系统,其特征在于,包括通用IDE用户行为特征采集模块、通用IDE用户行为特征预处理模块、通用IDE用户分类模块、通用IDE启动优化模块、通用IDE运行监控模块及通用IDE运行优化模块;
其中,所述通用IDE用户行为特征采集模块,用于按照通用IDE用户类型采集用户使用通用IDE时的行为特征,形成通用IDE用户行为特征集;所述通用IDE用户类型定义为由用户开发软件的类型及使用的编程语言构成的二元组,所述行为特征包括用户所点击菜单项的名称、点击菜单项的时间、点击菜单项的次数、点击的菜单项所属的插件名称、插件的状态及插件的使用时间;
所述通用IDE用户行为特征预处理模块,用于将所述通用IDE用户行为特征采集模块输出的所述通用IDE用户行为特征集中的数据转换为通用IDE用户行为特征文件,并将所述通用IDE用户行为特征文件分割为训练数据和测试数据,再将所述训练数据和测试数据进行标准化处理后形成通用IDE用户分类训练样本集;
所述通用IDE用户分类模块,用于采用通用IDE用户分类模型对通用IDE用户分类得到通用IDE用户的类型,采用所述通用IDE用户行为特征预处理模块输出的通用IDE用户分类训练样本集完成对所述通用IDE用户分类模型的训练;对于新通用IDE用户,则将所述通用IDE用户行为特征采集模块获取的新通用IDE用户的行为特征输入所述通用IDE用户分类模块,得到的输出即为新通用IDE用户的用户类型;
所述通用IDE启动优化模块,用于根据所述通用IDE用户分类模块输出的新通用IDE用户的用户类型,匹配通用IDE启动所需的插件列表,当新通用IDE用户再次启动通用IDE时则使用所述插件列表进行启动;
所述通用IDE运行监控模块,用于根据所述通用IDE启动优化模块得到的所述插件列表,在用户运行通用IDE阶段监测所述插件列表中插件的状态;
所述通用IDE运行优化模块,用于根据所述通用IDE运行监控模块输出的状态对插件进行控制,即若插件的状态为运行且无用户点击行为的时间大于阈值,则将插件的状态设置为停止。
9.根据权利要求8所述的通用IDE性能优化系统,其特征在于,所述通用IDE用户行为特征采集模块具有剔除所述通用IDE用户行为特征集中公用插件的相关信息的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444665.1A CN113176905B (zh) | 2021-04-26 | 2021-04-26 | 一种基于机器学习的通用ide性能优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444665.1A CN113176905B (zh) | 2021-04-26 | 2021-04-26 | 一种基于机器学习的通用ide性能优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113176905A CN113176905A (zh) | 2021-07-27 |
CN113176905B true CN113176905B (zh) | 2021-10-26 |
Family
ID=76924480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110444665.1A Active CN113176905B (zh) | 2021-04-26 | 2021-04-26 | 一种基于机器学习的通用ide性能优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113176905B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207967A (zh) * | 2011-06-03 | 2011-10-05 | 奇智软件(北京)有限公司 | 一种自动提供浏览器新插件的方法和系统 |
CN108304427A (zh) * | 2017-04-28 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种用户客群分类方法和装置 |
CN109960493A (zh) * | 2019-03-25 | 2019-07-02 | 山东浪潮通软信息科技有限公司 | 一种基于动态插件机制的在线ide开发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050235258A1 (en) * | 2004-04-20 | 2005-10-20 | International Business Machines Corporation | Method, plug-in and program product for customizing java bean properties |
-
2021
- 2021-04-26 CN CN202110444665.1A patent/CN113176905B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207967A (zh) * | 2011-06-03 | 2011-10-05 | 奇智软件(北京)有限公司 | 一种自动提供浏览器新插件的方法和系统 |
CN108304427A (zh) * | 2017-04-28 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种用户客群分类方法和装置 |
CN109960493A (zh) * | 2019-03-25 | 2019-07-02 | 山东浪潮通软信息科技有限公司 | 一种基于动态插件机制的在线ide开发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113176905A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN110175236B (zh) | 用于文本分类的训练样本生成方法、装置和计算机设备 | |
US11288592B2 (en) | Bug categorization and team boundary inference via automated bug detection | |
Baier et al. | Bridging abstraction layers in process mining | |
Kamimura et al. | Extracting candidates of microservices from monolithic application code | |
Lamkanfi et al. | Comparing mining algorithms for predicting the severity of a reported bug | |
De Lucia et al. | Information retrieval methods for automated traceability recovery | |
US7865870B2 (en) | Automatic content completion of valid values for method argument variables | |
US9354867B2 (en) | System and method for identifying, analyzing and integrating risks associated with source code | |
CN108664269A (zh) | 一种基于深度学习的特征依恋代码异味检测方法 | |
CN105955889A (zh) | 一种图形界面自动化测试方法 | |
Singh et al. | Comparative analysis of regression and machine learning methods for predicting fault proneness models | |
US20060101392A1 (en) | Strongly-typed UI automation model generator | |
CN111026433A (zh) | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 | |
Shah et al. | Towards benchmarking feature type inference for automl platforms | |
CN108664237B (zh) | 一种基于启发式和神经网络的非api成员推荐方法 | |
El-Ramly et al. | Modeling the system-user dialog using interaction traces | |
CN113011461A (zh) | 通过知识学习增强基于分类的软件需求跟踪链接恢复方法及电子装置 | |
CN103020289A (zh) | 一种基于日志挖掘的搜索引擎用户个性化需求提供方法 | |
US9495275B2 (en) | System and computer program product for deriving intelligence from activity logs | |
CN111460137B (zh) | 一种基于主题模型的微服务关注点识别方法、设备及介质 | |
CN113176905B (zh) | 一种基于机器学习的通用ide性能优化方法及系统 | |
US9454455B2 (en) | Method for deriving intelligence from activity logs | |
Kanellopoulos et al. | Data mining source code to facilitate program comprehension: experiments on clustering data retrieved from C++ programs | |
Khramov | Robotic and machine learning: how to help support to process customer tickets more effectively |
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 |