CN113590088A - 一种自动分析组件使用情况的方法、装置和电子设备 - Google Patents

一种自动分析组件使用情况的方法、装置和电子设备 Download PDF

Info

Publication number
CN113590088A
CN113590088A CN202110823745.8A CN202110823745A CN113590088A CN 113590088 A CN113590088 A CN 113590088A CN 202110823745 A CN202110823745 A CN 202110823745A CN 113590088 A CN113590088 A CN 113590088A
Authority
CN
China
Prior art keywords
component
file
pure
files
directory
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
CN202110823745.8A
Other languages
English (en)
Other versions
CN113590088B (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 Qiyue Information Technology Co Ltd
Original Assignee
Shanghai Qiyue Information Technology Co Ltd
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 Qiyue Information Technology Co Ltd filed Critical Shanghai Qiyue Information Technology Co Ltd
Priority to CN202110823745.8A priority Critical patent/CN113590088B/zh
Publication of CN113590088A publication Critical patent/CN113590088A/zh
Application granted granted Critical
Publication of CN113590088B publication Critical patent/CN113590088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical 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/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,具体涉及一种自动分析组件使用情况的方法、装置和电子设备,包括:获取组件列表,并创建组件树对象;依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;通过展示页面展示各个组件的使用统计结果。本发明能够自动统计组件使用情况,可视化提供每个组件的被引用次数、被引用位置等,从而快速寻找到需要的组件,减少组件的重复开发。

Description

一种自动分析组件使用情况的方法、装置和电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动分析组件使用情况的方法、装置和电子设备。
背景技术
随着项目规模的增大、复杂度的提高,组件化开发必不可少,这种设计不仅增加了复用性、提高了工作效率,从某种程度上来说也反映出开发者对业务和产品设计的思考与理解,一举多得。但随着组件化开发的推广和深入也产生了一系列的问题,比如,组件数量越来越多导致快速寻找需要的组件较为困难、各个组件当前的使用情况不清晰、多人开发导致组件拆分粒度不同造成的复用率低及扩展性差等问题,这些都使得组件的重复开发越来越多,项目中出现较多冗余代码,因此,自动统计组件使用情况就变得很有必要。
发明内容
本发明提供了一种自动分析组件使用情况的方法、装置和电子设备,能够自动统计组件使用情况,快速寻找到需要的组件,减少组件的重复开发。
本说明书实施例提供一种自动分析组件使用情况的方法,包括:
获取组件列表,并创建组件树对象;
依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
通过展示页面展示各个组件的使用统计结果。
优选的,所述获取组件列表,包括:
定位存放各个组件的目录地址;
通过所述目录地址度读取各个组件,得到组件列表。
优选的,所述对目标目录进行递归遍历,包括:
读取所述目标目录,得到所述目标目录下的所有文件;
判断所述文件是否为纯文件,所述纯文件包括纯文本文件、纯图片文件、纯音频文件、纯视频文件。
优选的,所述判断所述文件是否为纯文件,包括:
当所述文件是纯文件时,读取纯文件的内容;
当所述文件为目录文件时,遍历所述目录文件下子目录文件,拼接出子目录文件地址,通过所述子目录文件地址读取子目录文件,直至读取的所述子目录文件为纯文件,读取纯文件的内容。
优选的,所述匹配到与各个组件相对应的纯文件,包括:
通过正则匹配判断所述纯文件中是否存在所述组件列表中相对应的组件;
当所述纯文件中不存在所述组件列表中相对应的组件时,组件未被使用;
当所述纯文件中存在所述组件列表中相对应的组件时,记录所述纯文件的文件地址,增加所述组件列表中相对应的组件的引用次数。
优选的,所述得到各个组件的引用位置、引用次数,包括:
判断所有子目录文件是否已被校验;
当所有子目录文件没有完全被校验时,继续对子目录文件进行递归遍历;
当所有子目录文件完全被校验时,判断各个组件是否完全被遍历。
优选的,所述判断各个组件是否完全被遍历,包括:
当各个组件未完全被遍历时,继续对目标目录进行递归遍历;
当各个组件完全被遍历时,通过组件树对象得到各个组件的引用位置、引用次数。
本说明书实施例还提供一种自动分析组件使用情况的装置,包括:
组件树对象创建模块,用于获取组件列表,并创建组件树对象;
组件树对象填充模块,用于依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
文件匹配模块,用于对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
信息统计模块,用于将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
信息展示模块,用于通过展示页面展示各个组件的使用统计结果。
一种电子设备,其中,该电子设备包括:
处理器以及存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一项所述的方法。
一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现上述任一项所述的方法。
本发明通过遍历文件的方式实现自动统计组件使用情况,可视化提供每个组件的被引用次数、被引用位置等,从而快速寻找到需要的组件,减少组件的重复开发。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种自动分析组件使用情况的方法的原理示意图;
图2为本说明书实施例提供的一种自动分析组件使用情况的装置的结构示意图;
图3为本说明书实施例提供的一种电子设备的结构示意图;
图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
具体实施方式
现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
附图中所示的图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个或多者的所有组合。
参照图1为本说明书实施例提供的一种自动分析组件使用情况的方法的原理示意图,包括:
S101:获取组件列表,并创建组件树对象;
在本发明较佳的实施例中,通常组件都会统一存放,在项目启动时定位到存放组件的目录地址,通过目录地址读取出目录下的所有组件,得到组件列表,同时新建一个空对象作为组件树对象。通过创建空对象作为组件树对象的方式便于后续直接观察到各个组件的使用情况。
S102:依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
在本发明较佳的实施例中,从组件列表中取出第一个组件,然后将组件名作为key添加到组件树对象中,之后进行后续的对目标目录进行递归遍历的过程,然后从组件列表中取出第二个组件。循环上述过程,直至所有组件都完成了递归遍历。通过上述方式使得每个组件的使用信息均能通过组件树对象直接得到,便于查询,
S103:对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
在本发明较佳的实施例中,针对组件列表中取出的第一个组件进行递归遍历,遍历目标目录下的所有文件,若文件不存在,则对其他组件进行遍历;当文件存在时,判断该文件是否为目录文件,并根据判断结果进行下一步的操作,最终读取到纯文件,根据组件对纯文件的文件内容正则匹配,判断纯文件的文件内容是否引用了该组件,若引用,则记录此时纯文件的文件地址,且增加一次该组件的被引用次数,然后循环上述过程,直至目标目录下的所有文件具备完全遍历。通过上述方式能够得到组件的被引用地址和被引用次数等数据,便于项目创建人员对组件的引用以及减少组件的重复创建。
S104:将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
在本发明较佳的实施例中,基于上一步骤得到的纯文件的文件地址、组件被引用次数等信息,将这些信息填充到组件树对象中相对应的组件名称下,通过查询组件名称可直接得到相应组件的引用位置、引用次数等信息,实现快速寻找需要的组件,清楚了解到各个组件当前的使用情况,减少组件的重复开发,降低项目中出现较多冗余代码。
S105:通过展示页面展示各个组件的使用统计结果。
在本发明较佳的实施例中,读取组件树对象的数据,进行可视化的展示,可视化了解到各个组件的使用情况,各个组件的使用情况包括被引用的文件地址、被引用的次数等。
进一步地,所述获取组件列表,包括:
定位存放各个组件的目录地址;
通过所述目录地址度读取各个组件,得到组件列表。
进一步地,所述对目标目录进行递归遍历,包括:
读取所述目标目录,得到所述目标目录下的所有文件;
判断所述文件是否为纯文件,所述纯文件包括纯文本文件、纯图片文件、纯音频文件、纯视频文件。
在本发明较佳的实施例中,读取目标目录下的所有文件,对每一个组件都进行所有文件的遍历,判断每个文件或每个文件的内置文件中是否存在纯文件,通过对纯文件内容的读取,可以得知每个纯文件中是否存在相应组件的引用,如果存在,则记录这些纯文件的文件地址,且每记录一次,对应的组件被引用次数也加一。通过上述方式得到相应组件的引用位置、引用次数等信息,实现快速寻找需要的组件。
进一步地,所述判断所述文件是否为纯文件,包括:
当所述文件是纯文件时,读取纯文件的内容;
当所述文件为目录文件时,遍历所述目录文件下子目录文件,拼接出子目录文件地址,通过所述子目录文件地址读取子目录文件,直至读取的所述子目录文件为纯文件,读取纯文件的内容。
在本发明较佳的实施例中,当文件是纯文件时,直接读取纯文件的内容,通过读取的内容判断该纯文件是否引用了组件;当文件为目录文件时,说明目录文件下存在子目录,应当对子目录进行进一步读取,此处通过拼接出子目录文件地址的方式,根据子目录文件地址读取子目录下的文件,循环上述读取子目录下的文件的过程,直至读取的文件为纯文件,然后通过读取纯文件的内容判断该纯文件是否引用了组件。通过上述方式寻找到纯文件,便于后续对纯文件是否引用该组件进行判断,以得到该组件被引用的文件地址及引用次数等。
进一步地,所述匹配到与各个组件相对应的纯文件,包括:
通过正则匹配判断所述纯文件中是否存在所述组件列表中相对应的组件;
当所述纯文件中不存在所述组件列表中相对应的组件时,组件未被使用;
当所述纯文件中存在所述组件列表中相对应的组件时,记录所述纯文件的文件地址,增加所述组件列表中相对应的组件的引用次数。
在本发明较佳的实施例中,根据当前项目引入第一个组件的方式整理出正则表达式进行当前文件的匹配,若匹配失败,则当前文件或当期文件的内置文件不存在所述组件列表中相对应的组件,说明当前文件未引用该组件;若匹配成功,则将当前文件地址存入组件树对象,直到将目标目录下的所有文件遍历完成为止至此也得到了第一个组件的所有引用位置和次数,其他剩余的组件按照上述方式进行遍历,从而得到所有组件被引用的文件地址及被引用次数等。通过上述方式得到相应组件的引用位置、引用次数等信息,实现快速寻找需要的组件,减少重复的组件构建过程。
进一步地,所述得到各个组件的引用位置、引用次数,包括:
判断所有子目录文件是否已被校验;
当所有子目录文件没有完全被校验时,继续对子目录文件进行递归遍历;
当所有子目录文件完全被校验时,判断各个组件是否完全被遍历。
在本发明较佳的实施例中,判断所有子目录文件是否已被校验,当所有子目录文件没有完全被校验时,需要继续对子目录文件进行递归遍历,直至所有子目录文件均已完成正则匹配过程;当所有子目录文件完全被校验时,判断各个组件是否完全被遍历。通过上述方式保证了在对组件的使用情况进行统计时,不会统计错误。
进一步地,所述判断各个组件是否完全被遍历,包括:
当各个组件未完全被遍历时,继续对目标目录进行递归遍历;
当各个组件完全被遍历时,通过组件树对象得到各个组件的引用位置、引用次数。
在本发明较佳的实施例,对组件使用情况的统计不限于组件被引用的文件地址、组件被引用的次数,还可以是组件的其他信息的统计。
在本发明较佳的实施例中,通过遍历文件的方式实现自动统计组件使用情况,基于组件树对象可视化提供每个组件的被引用次数、被引用位置等,快速寻找到需要的组件,减少组件的重复开发。
在本发明较佳的实施例中,步骤1,定位到存放组件的目录地址,读取出目录下的所有组件,得到组件列表,同时新建一个空对象作为组件树对象;步骤2,确定要统计组件引用情况的目标目录;步骤3,从组件列表中取出第一个组件,然后将组件名作为key添加到组件树对象中,开始对目标目录进行递归遍历;步骤4,首先读取目标目录得到所有文件列表,逐个对文件列表进行判断,若当前文件是目录,则拼接出子目录地址继续往内层读取,直到遇到纯文件为止,当拿到文件之后开始读取内容,用适当的正则表达式匹配判断当前文件中是否引用了该组件,若匹配成功,则将当前文件地址存入组件树对象,直到将目标目录下的所有文件遍历完成为止,至此也得到了第一个组件的所有引用位置和次数;步骤5,从组件列表中读取出第二个组件,执行步骤3,以此类推,直到将所有组件都遍历完成,此时组件树对象中便含有所有组件的引用位置和次数;步骤5,读取组件树对象的数据,进行可视化的展示。
步骤1可以参考上述实施例中对“获取组件列表,并创建组件树对象;定位存放各个组件的目录地址;通过所述目录地址度读取各个组件,得到组件列表。”的描述,步骤2可以参考上述实施例中对“读取所述目标目录,得到所述目标目录下的所有文件”的描述,步骤3可以参考上述实施例中对“依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;”的描述,步骤4可以参考上述实施例中对“读取所述目标目录,得到所述目标目录下的所有文件;判断所述文件是否为纯文件,所述纯文件包括纯文本文件、纯图片文件、纯音频文件、纯视频文件。当所述文件是纯文件时,读取纯文件的内容;当所述文件为目录文件时,遍历所述目录文件下子目录文件,拼接出子目录文件地址,通过所述子目录文件地址读取子目录文件,直至读取的所述子目录文件为纯文件,读取纯文件的内容。通过正则匹配判断所述纯文件中是否存在所述组件列表中相对应的组件;当所述纯文件中不存在所述组件列表中相对应的组件时,组件未被使用;当所述纯文件中存在所述组件列表中相对应的组件时,记录所述纯文件的文件地址,增加所述组件列表中相对应的组件的引用次数。”的描述,步骤5可以参考上述实施例中对“通过展示页面展示各个组件的使用统计结果。”的描述。
图2为本说明书实施例提供的一种自动分析组件使用情况的装置的结构示意图,包括:
组件树对象创建模块201,用于获取组件列表,并创建组件树对象;
组件树对象填充模块202,用于依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
文件匹配模块203,用于对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
信息统计模块204,用于将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
信息展示模块205,用于通过展示页面展示各个组件的使用统计结果。
进一步地,组件树对象创建模块201包括组件列表获取单元,用于定位存放各个组件的目录地址;通过所述目录地址度读取各个组件,得到组件列表。
进一步地,文件匹配模块203包括文件判断单元,用于读取所述目标目录,得到所述目标目录下的所有文件;判断所述文件是否为纯文件,所述纯文件包括纯文本文件、纯图片文件、纯音频文件、纯视频文件。当所述文件是纯文件时,读取纯文件的内容;当所述文件为目录文件时,遍历所述目录文件下子目录文件,拼接出子目录文件地址,通过所述子目录文件地址读取子目录文件,直至读取的所述子目录文件为纯文件,读取纯文件的内容。通过正则匹配判断所述纯文件中是否存在所述组件列表中相对应的组件;当所述纯文件中不存在所述组件列表中相对应的组件时,组件未被使用;当所述纯文件中存在所述组件列表中相对应的组件时,记录所述纯文件的文件地址,增加所述组件列表中相对应的组件的引用次数。
进一步地,信息统计模块204包括信息统计单元,用于判断所有子目录文件是否已被校验;当所有子目录文件没有完全被校验时,继续对子目录文件进行递归遍历;当所有子目录文件完全被校验时,判断各个组件是否完全被遍历。当各个组件未完全被遍历时,继续对目标目录进行递归遍历;当各个组件完全被遍历时,通过组件树对象得到各个组件的引用位置、引用次数。
本发明实施例的装置的功能已经在上述的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
基于同一发明构思,本说明书实施例还提供一种电子设备。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
参照图3为本说明书实施例提供的一种电子设备的结构示意图。下面参照图3来描述根据本发明该实施例的电子设备300。图3显示的电子设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,电子设备300以通用计算设备的形式表现。电子设备300的组件可以包括但不限于:至少一个处理单元310、至少一个存储单元320、连接不同装置组件(包括存储单元320和处理单元310)的总线330、显示单元340等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图1所示的步骤。
所述存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(ROM)3203。
所述存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作装置、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备300也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管图3中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID装置、磁带驱动器以及数据备份存储装置等。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。当所述计算机程序被一个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:如图1所示的方法。
参照图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
实现图1所示方法的计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种自动分析组件使用情况的方法,其特征在于,包括:
获取组件列表,并创建组件树对象;
依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
通过展示页面展示各个组件的使用统计结果。
2.如权利要求1所述的一种自动分析组件使用情况的方法,其特征在于,所述获取组件列表,包括:
定位存放各个组件的目录地址;
通过所述目录地址度读取各个组件,得到组件列表。
3.如权利要求1-2中任一项所述的一种自动分析组件使用情况的方法,其特征在于,所述对目标目录进行递归遍历,包括:
读取所述目标目录,得到所述目标目录下的所有文件;
判断所述文件是否为纯文件,所述纯文件包括纯文本文件、纯图片文件、纯音频文件、纯视频文件。
4.如权利要求1-3中任一项所述的一种自动分析组件使用情况的方法,其特征在于,所述判断所述文件是否为纯文件,包括:
当所述文件是纯文件时,读取纯文件的内容;
当所述文件为目录文件时,遍历所述目录文件下子目录文件,拼接出子目录文件地址,通过所述子目录文件地址读取子目录文件,直至读取的所述子目录文件为纯文件,读取纯文件的内容。
5.如权利要求1-4中任一项所述的一种自动分析组件使用情况的方法,其特征在于,所述匹配到与各个组件相对应的纯文件,包括:
通过正则匹配判断所述纯文件中是否存在所述组件列表中相对应的组件;
当所述纯文件中不存在所述组件列表中相对应的组件时,组件未被使用;
当所述纯文件中存在所述组件列表中相对应的组件时,记录所述纯文件的文件地址,增加所述组件列表中相对应的组件的引用次数。
6.如权利要求1-5中任一项所述的一种自动分析组件使用情况的方法,其特征在于,所述得到各个组件的引用位置、引用次数,包括:
判断所有子目录文件是否已被校验;
当所有子目录文件没有完全被校验时,继续对子目录文件进行递归遍历;
当所有子目录文件完全被校验时,判断各个组件是否完全被遍历。
7.如权利要求1-6中任一项所述的一种自动分析组件使用情况的方法,其特征在于,所述判断各个组件是否完全被遍历,包括:
当各个组件未完全被遍历时,继续对目标目录进行递归遍历;
当各个组件完全被遍历时,通过组件树对象得到各个组件的引用位置、引用次数。
8.一种自动分析组件使用情况的装置,其特征在于,包括:
组件树对象创建模块,用于获取组件列表,并创建组件树对象;
组件树对象填充模块,用于依次读取所述组件列表中的各个组件,并将各个组件的组件名称添加到所述组件树对象;
文件匹配模块,用于对目标目录进行递归遍历,匹配到与各个组件相对应的纯文件;
信息统计模块,用于将所述纯文件的文件地址存放至所述组件树对象中相对应的组件名称下,得到各个组件的引用位置、引用次数;
信息展示模块,用于通过展示页面展示各个组件的使用统计结果。
9.一种电子设备,其中,该电子设备包括:
处理器以及存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1-7中任一项所述的方法。
CN202110823745.8A 2021-07-21 2021-07-21 一种自动分析组件使用情况的方法、装置和电子设备 Active CN113590088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110823745.8A CN113590088B (zh) 2021-07-21 2021-07-21 一种自动分析组件使用情况的方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110823745.8A CN113590088B (zh) 2021-07-21 2021-07-21 一种自动分析组件使用情况的方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN113590088A true CN113590088A (zh) 2021-11-02
CN113590088B CN113590088B (zh) 2023-07-21

Family

ID=78248667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110823745.8A Active CN113590088B (zh) 2021-07-21 2021-07-21 一种自动分析组件使用情况的方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN113590088B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733551A (zh) * 2017-04-13 2018-11-02 中兴通讯股份有限公司 控件遍历方法及装置、分析***
US20200387439A1 (en) * 2019-06-06 2020-12-10 International Business Machines Corporation Intercepting and recording calls to a module in real-time
CN112241394A (zh) * 2020-10-15 2021-01-19 浪潮商用机器有限公司 一种索引节点io的统计方法、工具、设备及存储介质
CN112328557A (zh) * 2020-10-19 2021-02-05 中国建设银行股份有限公司 一种文件数量统计方法、装置、设备及存储介质
CN112364107A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 ***分析可视化方法、装置、电子设备及计算机可读存储介质
CN113064814A (zh) * 2021-03-09 2021-07-02 青岛海尔科技有限公司 组件引用数据的处理方法及装置、存储介质及电子装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733551A (zh) * 2017-04-13 2018-11-02 中兴通讯股份有限公司 控件遍历方法及装置、分析***
US20200387439A1 (en) * 2019-06-06 2020-12-10 International Business Machines Corporation Intercepting and recording calls to a module in real-time
CN112241394A (zh) * 2020-10-15 2021-01-19 浪潮商用机器有限公司 一种索引节点io的统计方法、工具、设备及存储介质
CN112328557A (zh) * 2020-10-19 2021-02-05 中国建设银行股份有限公司 一种文件数量统计方法、装置、设备及存储介质
CN112364107A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 ***分析可视化方法、装置、电子设备及计算机可读存储介质
CN113064814A (zh) * 2021-03-09 2021-07-02 青岛海尔科技有限公司 组件引用数据的处理方法及装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN113590088B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
US20230114540A1 (en) Checking source code validity at time of code update
CN111240689A (zh) 应用程序的构建方法、装置、设备及存储介质
CN110058861B (zh) 源码处理方法及装置、存储介质、电子设备
CN110347573B (zh) 应用程序分析方法、装置、电子设备及计算机可读介质
CN113051514A (zh) 元素的定位方法、装置、电子设备及存储介质
CN113760306A (zh) 安装软件的方法、装置、电子设备及存储介质
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
CN110362404B (zh) 一种基于sql的资源分配方法、装置和电子设备
US20220374212A1 (en) Indexing and accessing source code snippets contained in documents
CN112860264A (zh) 一种抽象语法树重构方法及装置
CN110196952B (zh) 程序代码的搜索处理方法、装置、设备及存储介质
US20230088670A1 (en) Reverse compiler
US20150178075A1 (en) Enhancing understandability of code using code clones
CN116561161A (zh) 一种基于mysql数据库行为的数据回溯方法、***及存储介质
CN113590088B (zh) 一种自动分析组件使用情况的方法、装置和电子设备
CN113179183B (zh) 服务开关状态控制装置及方法
CN114817803A (zh) 一种页面跳转方法、装置和电子设备
US6854109B2 (en) Tool for converting .MAP file formats
CN114090514A (zh) 分布式***的日志检索方法及装置
CN112650839A (zh) 检索信息优化方法以及装置
CN109697167B (zh) 测试变量的管理方法、***、电子设备和存储介质
CN111209075A (zh) 多语言界面维护方法、***、存储介质和智能设备
US20240061764A1 (en) Stack Frame Generation for Source Code Enclosed by Macros
CN111562940B (zh) 项目数据构建方法以及装置

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