CN111078276B - 应用程序的冗余资源处理方法、装置、设备及存储介质 - Google Patents

应用程序的冗余资源处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111078276B
CN111078276B CN201911330486.4A CN201911330486A CN111078276B CN 111078276 B CN111078276 B CN 111078276B CN 201911330486 A CN201911330486 A CN 201911330486A CN 111078276 B CN111078276 B CN 111078276B
Authority
CN
China
Prior art keywords
resource
redundant
referenced
counting
index
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
CN201911330486.4A
Other languages
English (en)
Other versions
CN111078276A (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.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision 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 Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Priority to CN201911330486.4A priority Critical patent/CN111078276B/zh
Publication of CN111078276A publication Critical patent/CN111078276A/zh
Application granted granted Critical
Publication of CN111078276B publication Critical patent/CN111078276B/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/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种应用程序的冗余资源处理方法、装置、设备及存储介质。通过遍历XML文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的冗余资源。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,通过资源的计数值发现其为冗余资源。通过引用计数统计的方式自动查找冗余资源,查找方式效率更高。

Description

应用程序的冗余资源处理方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种应用程序的冗余资源处理方法、装置、设备及存储介质。
背景技术
应用程序在开发以及更新迭代过程中,会积累冗余资源。
以应用程序的开发过程为例:为满足不同需求,会开发不同版本的应用程序,如国内版应用程序和海外版应用程序。不同版本的应用程序有大量共用功能,也有本版本专有功能。对于共用功能,可以共用代码和资源,对于本版本专有功能,对应专有代码和资源。若将版本专有功能对应的资源存放到共用资源的存储路径下,将会被打包到其他版本的应用程序包中,成为其他版本的应用程序中的冗余资源。
以应用程序的更新迭代过程为例:对于满足短期需求(如短期营销活动)而进行的更新迭代,在需求结束后,会删除对应的代码,但由于资源查找困难,往往保留对应的资源。这些资源就成为了应用程序中的冗余资源。
为了防止冗余资源积累导致应用程序的包体积增大,现有处理方式是人工定期手动排查冗余资源,这种处理方式的处理效率较低。
发明内容
本申请实施例提供一种应用程序的冗余资源处理方法、装置、设备及存储介质,以达到以较高的处理速度查找应用程序的冗余资源的目的。
第一方面,本申请实施例提供一种应用程序的冗余资源处理方法,包括:
通过遍历应用程序的可扩展标记语言文件,查找资源引用数据,该资源引用数据包括资源引用标识和被引用资源的第一资源索引;
根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
通过遍历应用程序的代码指令,查找资源引用代码指令,该资源引用代码指令包括被引用资源的第二资源索引;
根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,并按照上述第一修改方式修改确定的被引用资源的引用计数的计数值;
查找引用计数的计数值为设定值的第一冗余资源,资源的引用计数的计数值为设定值表示本资源未被引用;
获取应用程序的资源引用关系集合,资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引;
分别以查找到的每个第一冗余资源为根节点遍历上述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值;
查找引用计数的计数值为设定值的第二冗余资源;
其中,上述第一修改方式使用的单位修改量与上述第二修改方式使用的单位修改量为相反数,单位修改量为单次确定被引用资源对应的引用计数的计数值的修改量。
本申请实施例提供的冗余资源处理方法,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的方法,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
在此基础上,还可以利用上述应用程序的各个资源的资源类型、资源名称和标识常量,生成基于哈希存储结构的数据集合。
相应的,上述根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用数据中包括的第一资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第一资源索引包括资源类型和资源名称。
相应的,上述根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用代码指令中包括的第二资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第二资源索引包括:标识常量,或者,资源类型和资源名称。
相应的,上述根据遍历到的资源节点中包括的第三资源索引确定被引用资源,其实现方式可以是:根据遍历到的资源节点中包括的第三资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第三资源索引包括:标识常量,或者,资源类型和资源名称。
应当指出的是,在根据第一资源索引、第二资源索引、第三资源索引确定被引用资源时,也可以直接在应用程序的R文件中检索被引用资源,但需要逐条遍历R文件的每行数据,检索效率低。本申请实施例提供的方法,另外构造基于哈希存储结构的数据集合,利用第一资源索引、第二资源索引、第三资源索引在该数据集合中定位被引用资源,利用哈希存储结构快速定位的结构优势,可提高检索效率。
在上述任意方法实施例的基础上,上述获取应用程序的资源引用关系集合,其实现方式可以是:根据查找到的资源引用数据获取应用程序的资源引用关系集合。
本申请实施例提供的方法,可以通过遍历一次可扩展标记语言文件,即确定被引用资源,也获得资源间的引用关系,优化处理过程,提高处理效率。
在上述任意方法实施例的基础上,上述分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,其实现方式可以是:将各个第一冗余资源添加到队列中;依次从所述队列中读取第一冗余资源作为根节点遍历上述资源引用关系集合。
本申请实施例提供的方法,将第一冗余资源添加到队列中,利用队列先进先出的特性,可以在确定第一冗余资源的过程中,利用已经确定了的第一冗余资源对资源引用关系集合进行遍历,进一步提高处理效率。
在上述任意方法实施例的基础上,上述查找引用计数的计数值为设定值的第二冗余资源,其实现方式可以是:
在第一冗余资源之外的资源中查找引用计数的计数值为设定值的第二冗余资源。
本申请实施例提供的方法,可以在全部资源范围内再次查找冗余资源,也可以仅在第一冗余资源之外的资源中查找冗余资源,以缩小查找范围,进一步提高处理效率。
在上述任意方法实施例的基础上,按照第一修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第一资源索引或第二资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值加1;按照第二修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第三资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值减1。
本申请实施例中,将单位修改量确定为1,且修改方式为加1或减1,其处理方式简单、快速。
在上述任意方法实施例的基础上,可以输出上述第一冗余资源和上述第二冗余资源,也可以直接删除上述第一冗余资源和上述第二冗余资源。
具体是将冗余资源的查找结果通知给用户,还是自动删除查找到的冗余资源,可以在实际应用中根据情况和需求确定。
第二方面,本申请实施例提供一种应用程序的冗余资源处理装置,包括:
第一遍历模块,用于通过遍历应用程序的可扩展标记语言文件,查找资源引用数据,该资源引用数据包括资源引用标识和被引用资源的第一资源索引;
第一计数模块,用于根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
第二遍历模块,用于通过遍历应用程序的代码指令,查找资源引用代码指令,该资源引用代码指令包括被引用资源的第二资源索引;
第二计数模块,用于根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
第一冗余资源查找模块,用于查找引用计数的计数值为设定值的第一冗余资源,资源的引用计数的计数值为设定值表示本资源未被引用;
引用关系集合获取模块,用于获取应用程序的资源引用关系集合,该资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引;
第三计数模块,用于分别以查找到的每个第一冗余资源为根节点遍历上述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值;
第二冗余资源查找模块,用于查找引用计数的计数值为设定值的第二冗余资源;
其中,上述第一修改方式使用的单位修改量与所述第二修改方式使用的单位修改量为相反数,上述单位修改量为单次确定被引用资源对应的引用计数的修改量。
本申请实施例提供的冗余资源处理装置,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的装置,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
在此基础上,还可以包括数据集合生成模块,用于利用上述应用程序的各个资源的资源类型、资源名称和标识常量,生成基于哈希存储结构的数据集合。
相应的,上述第一计数模块根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用数据中包括的第一资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第一资源索引包括资源类型和资源名称。
相应的,上述第二计数模块根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用代码指令中包括的第二资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第二资源索引包括:标识常量,或者,资源类型和资源名称。
相应的,上述第三计数模块根据遍历到的资源节点中包括的第三资源索引确定被引用资源,其实现方式可以是:根据遍历到的资源节点中包括的第三资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第三资源索引包括:标识常量,或者,资源类型和资源名称。
应当指出的是,在根据第一资源索引、第二资源索引、第三资源索引确定被引用资源时,也可以直接在应用程序的R文件中检索被引用资源,但需要逐条遍历R文件的每行数据,检索效率低。本申请实施例提供的装置,另外构造基于哈希存储结构的数据集合,利用第一资源索引、第二资源索引、第三资源索引在该数据集合中定位被引用资源,利用哈希存储结构快速定位的结构优势,可提高检索效率。
在上述任意装置实施例的基础上,上述获取应用程序的资源引用关系集合,其实现方式可以是:根据查找到的资源引用数据获取应用程序的资源引用关系集合。
本申请实施例提供的装置,可以通过遍历一次可扩展标记语言文件,即确定被引用资源,也获得资源间的引用关系,优化处理过程,提高处理效率。
在上述任意装置实施例的基础上,上述分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,其实现方式可以是:将各个第一冗余资源添加到队列中;依次从所述队列中读取第一冗余资源作为根节点遍历上述资源引用关系集合。
本申请实施例提供的装置,将第一冗余资源添加到队列中,利用队列先进先出的特性,可以在确定第一冗余资源的过程中,利用已经确定了的第一冗余资源对资源引用关系集合进行遍历,进一步提高处理效率。
在上述任意装置实施例的基础上,上述查找引用计数的计数值为设定值的第二冗余资源,其实现方式可以是:
在第一冗余资源之外的资源中查找引用计数的计数值为设定值的第二冗余资源。
本申请实施例提供的装置,可以在全部资源范围内再次查找冗余资源,也可以仅在第一冗余资源之外的资源中查找冗余资源,以缩小查找范围,进一步提高处理效率。
在上述任意装置实施例的基础上,按照第一修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第一资源索引或第二资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值加1;按照第二修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第三资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值减1。
本申请实施例中,将单位修改量确定为1,且修改方式为加1或减1,其处理方式简单、快速。
在上述任意装置实施例的基础上,可以输出上述第一冗余资源和上述第二冗余资源,也可以直接删除上述第一冗余资源和上述第二冗余资源。
具体是将冗余资源的查找结果通知给用户,还是自动删除查找到的冗余资源,可以在实际应用中根据情况和需求确定。
第三方面,本申请实施例还提供一种计算机设备,包括处理器和存储器;
存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的计算机设备,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
第四方面,本申请实施例还提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的计算机可读存储介质,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
附图说明
图1为本申请实施例提供的应用程序的冗余资源处理方法流程图;
图2为本申请实施例提供的应用程序的冗余资源处理装置框图;
图3为本申请实施例提供的计算机设备结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请实施例的技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请实施例技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本申请实施例提供一种应用程序的冗余资源处理方法,通过对应用程序的资源进行引用计数,利用引用计数的计数值发现冗余资源。该方法可以但不仅限于在应用程序的打包过程中执行,自动检查出冗余资源。
如图1所示,本发明实施例提供的应用程序的冗余资源处理方法包括如下操作:
步骤101、通过遍历应用程序的可扩展标记语言(XML)文件,查找资源引用数据,该资源引用数据包括资源引用标识和被引用资源的第一资源索引。
应用程序的资源引用出现在XML文件以及代码指令中。其中,XML文件对资源的引用方式为对资源类型和资源名的引用,具体的:XML文件中每个元素包括至少一个属性,若某个元素为引用资源,则该元素的某个属性的属性值为引用资源数据,具体数据格式为:@资源类型_资源名,其中,字符“@”为资源引用标识,资源类型和资源名构成第一资源索引。
因此,步骤101中,具体可以查找每个元素的属性的属性值,若存在资源引用标识,则获取其后的资源类型和资源名作为第一资源索引,否则继续遍历。
步骤102、根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值。
步骤103、通过遍历应用程序的代码指令,查找资源引用代码指令,该资源引用代码指令包括被引用资源的第二资源索引。
其中,代码指令是指字节码文件中各个方法的指令。代码指令对资源的引用方式分为对标识(ID)常量的直接引用和间接引用,具体的:如果代码指令直接引用资源的ID常量,则在资源引用代码指令中包括ID常量(此时,ID常量作为第二资源索引);如果代码指令间接引用资源的ID常量,则在资源引用代码指令中包括被引用资源的资源类型和资源名(此时,资源类型和资源名作为第二资源索引),其具体引用格式为:R.资源类型.资源名。
步骤104、根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,并按照上述第一修改方式修改确定的被引用资源的引用计数的计数值。
应当指出的是,实际应用中,步骤101和步骤103的执行不存在时序限定,可以先执行步骤101,也可以先执行步骤103,还可以同步执行步骤101和步骤103。
步骤105、查找引用计数的计数值为设定值的第一冗余资源。
其中,资源的引用计数的计数值为设定值表示本资源未被引用。
步骤106、获取应用程序的资源引用关系集合,资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引。
例如,资源A引用了资源B,那么,资源A对应的资源节点包括资源A的第三资源索引,还包括资源B的第三资源索引。作为举例而非限定,该资源节点的属性名保存资源A的第三资源索引,属性值保存资源B的第三资源索引;又或者,该资源节点包括两个属性,第一个属性的属性值保存资源A的第三资源索引,第二个属性的属性值保存资源B的第三资源索引。
其中,第三资源索引可以由资源的资源类型和资源名构成,当然也可以由资源的ID常量构成。
步骤107、分别以查找到的每个第一冗余资源为根节点遍历上述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值。
步骤108、查找引用计数的计数值为上述设定值的第二冗余资源。
其中,上述第一修改方式使用的单位修改量与上述第二修改方式使用的单位修改量为相反数,单位修改量为单次确定被引用资源对应的引用计数的计数值的修改量。
本申请实施例提供的冗余资源处理方法,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的方法,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
在此基础上,还可以利用上述应用程序的各个资源的资源类型、资源名称和标识常量,生成基于哈希存储结构的数据集合。作为举例而非限定,可以通过扫描应用程序的所有R文件的方式,利用这些R文件中的资源类型、资源名和ID常量生成上述基于哈希存储结构的数据集合(又可称为资源字典)。本申请实施例不对该数据集合的具体数据结构、数据管理方式进行限定,在实际应用过程中,根据实际场景需要进行定义,只要能够用于确定被引用资源即可。
相应的,上述根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用数据中包括的第一资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第一资源索引包括资源类型和资源名称。
相应的,上述根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用代码指令中包括的第二资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第二资源索引包括:标识常量,或者,资源类型和资源名称。
相应的,上述根据遍历到的资源节点中包括的第三资源索引确定被引用资源,其实现方式可以是:根据遍历到的资源节点中包括的第三资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第三资源索引包括:标识常量,或者,资源类型和资源名称。
本申请实施例不对利用资源索引在数据集合中确定被引用资源的具体实现方式进行限定,其实现方式与数据集合的具体数据结构有关。实际应用中,一旦数据集合的具体数据结构确定,利用资源索引确定被引用资源可采用与该具体结构匹配的现有实现方式实现。
应当指出的是,在根据第一资源索引、第二资源索引、第三资源索引确定被引用资源时,也可以直接在应用程序的R文件中检索被引用资源,但需要逐条遍历R文件的每行数据,检索效率低。本申请实施例提供的方法,另外构造基于哈希存储结构的数据集合,利用第一资源索引、第二资源索引、第三资源索引在该数据集合中定位被引用资源,利用哈希存储结构快速定位的结构优势,可提高检索效率。
作为举例而非限定,对于资源类型为图片(drawable),资源名为“cat”,ID常量为1233344455的资源。
在R文件中,该资源的描述为:
Class R$drawable{
Public static finial int cat=1233344455
……
利用第一资源索引在上述数据集合中确定该资源的方式为:
//key is resource type
Private Map<String,Map<String,Resource>>resourceSet
利用第二资源索引在上述数据集合中确定该资源的方式为:
//key is resource id
Private Map<Integer,Resource>resourceMap
在上述任意方法实施例的基础上,上述获取应用程序的资源引用关系集合,其实现方式可以是:根据查找到的资源引用数据获取应用程序的资源引用关系集合。
该步骤可以复用应用程序打包过程中对字节码文件的分析过程,其具体实现方式不再赘述。
本申请实施例提供的方法,可以通过遍历一次XML文件,即确定被引用资源,也获得资源间的引用关系,优化处理过程,提高处理效率。
对资源引用关系集合的遍历可以采用深度优先的遍历方式,也可以采用广度优先的遍历方式,本申请实施例对此不作限定。
在上述任意方法实施例的基础上,还可以将各个第一冗余资源添加到队列中;相应的,上述分别以查找到的每个第一冗余资源为根节点遍历上述资源引用关系集合,其实现方式可以是:依次从所述队列中读取第一冗余资源作为根节点遍历上述资源引用关系集合。具体的,可以按照查找时间顺序,每查找到一个第一冗余资源,即将该第一冗余资源添加到队列中。
更进一步地,为了更加全面地查找冗余资源,还将查找到的各个第二冗余资源添加到上述队列中。也就是说,每查找到一个第一冗余资源或第二冗余资源,均添加到上述队列中,从该队列中依次读取冗余资源作为根节点遍历上述资源引用关系集合,直至队列为空。
其中,将冗余资源添加到队列中,可以但不仅限于是将该冗余资源的第三资源索引添加到队列中。相应的,从队列中读取冗余资源是指从队列中读取冗余资源的第三资源索引。
本申请实施例提供的方法,将第一冗余资源和第二冗余资源添加到队列中,利用队列先进先出的特性,可以在确定第一冗余资源和第二冗余资源的过程中,利用已经确定了的第一冗余资源和第二冗余资源对资源引用关系集合进行遍历,进一步提高处理效率。另外,利用利用队列保存待遍历的冗余资源,也便于全面查找冗余资源。
在上述任意方法实施例的基础上,上述查找引用计数的计数值为设定值的第二冗余资源,其实现方式可以是:
在第一冗余资源之外的资源中查找引用计数的计数值为设定值的第二冗余资源。
本申请实施例提供的方法,可以在全部资源范围内再次查找冗余资源,也可以仅在第一冗余资源之外的资源中查找冗余资源,以缩小查找范围,进一步提高处理效率。
在上述任意方法实施例的基础上,按照第一修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第一资源索引或第二资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值加1;按照第二修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第三资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值减1。
在一个具体的实现方式中,每个资源的引用计数的计数初始值(即上述设定值)为0,通过遍历XML文件每查找到一个资源引用数据,即对该资源引用数据对应的被引用资源的引用计数的计数值加1,通过遍历代码指令,每查找到一个资源引用代码指令,即对该资源引用代码指令所引用的资源(被引用资源)的引用计数的计数值加1;将引用计数的计数值为0的资源(第一冗余资源)添加到队列中,依次从队列中读取冗余资源作为根节点,在资源引用关系集合中进行遍历,每遍历到一个资源,将该资源的引用计数的计数值减1;将引用计数的计数值减至0的资源(第二冗余资源)添加到队列中,当队列为空时,结束遍历。
本申请实施例中,将单位修改量确定为1,且修改方式为加1或减1,其处理方式简单、快速。
应当指出的是,本申请实施例不对计数值的修改方式进行限定,修改方式不仅可以累加,也可以倍乘,即每确定一次被引用资源,则对该被引用资源的引用计数的计数值乘以预定倍数(该预定倍数为单位修改量)。
应当指出的是,本申请实施例不对上述设定值进行限定,该设定值可以为0,也可以为其他取值。
在上述任意方法实施例的基础上,可以输出上述第一冗余资源和上述第二冗余资源,也可以直接删除上述第一冗余资源和上述第二冗余资源。
若输出冗余资源,可以但不仅限于是指输出冗余资源的资源索引。更具体的,可以在控制台或日志文件中以json的格式输出冗余资源。
具体是将冗余资源的查找结果通知给用户,还是自动删除查找到的冗余资源,可以在实际应用中根据情况和需求确定。
基于与方法同样的发明构思,本申请实施例提供一种应用程序的冗余资源处理装置,如图2所示,包括:
第一遍历模块201,用于通过遍历应用程序的可扩展标记语言文件,查找资源引用数据,该资源引用数据包括资源引用标识和被引用资源的第一资源索引;
第一计数模块202,用于根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
第二遍历模块203,用于通过遍历应用程序的代码指令,查找资源引用代码指令,该资源引用代码指令包括被引用资源的第二资源索引;
第二计数模块204,用于根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
第一冗余资源查找模块205,用于查找引用计数的计数值为设定值的第一冗余资源,资源的引用计数的计数值为设定值表示本资源未被引用;
引用关系集合获取模块206,用于获取应用程序的资源引用关系集合,该资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引;
第三计数模块207,用于分别以查找到的每个第一冗余资源为根节点遍历上述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值;
第二冗余资源查找模块208,用于查找引用计数的计数值为设定值的第二冗余资源;
其中,上述第一修改方式使用的单位修改量与所述第二修改方式使用的单位修改量为相反数,上述单位修改量为单次确定被引用资源对应的引用计数的修改量。
本申请实施例提供的冗余资源处理装置,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的装置,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
在此基础上,还可以包括数据集合生成模块,用于利用上述应用程序的各个资源的资源类型、资源名称和标识常量,生成基于哈希存储结构的数据集合。
相应的,上述第一计数模块根据查找到的资源引用数据中包括的第一资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用数据中包括的第一资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第一资源索引包括资源类型和资源名称。
相应的,上述第二计数模块根据查找到的资源引用代码指令中包括的第二资源索引确定被引用资源,其实现方式可以是:根据查找到的资源引用代码指令中包括的第二资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第二资源索引包括:标识常量,或者,资源类型和资源名称。
相应的,上述第三计数模块根据遍历到的资源节点中包括的第三资源索引确定被引用资源,其实现方式可以是:根据遍历到的资源节点中包括的第三资源索引,在上述基于哈希存储结构的数据集合中确定被引用资源,第三资源索引包括:标识常量,或者,资源类型和资源名称。
应当指出的是,在根据第一资源索引、第二资源索引、第三资源索引确定被引用资源时,也可以直接在应用程序的R文件中检索被引用资源,但需要逐条遍历R文件的每行数据,检索效率低。本申请实施例提供的装置,另外构造基于哈希存储结构的数据集合,利用第一资源索引、第二资源索引、第三资源索引在该数据集合中定位被引用资源,利用哈希存储结构快速定位的结构优势,可提高检索效率。
在上述任意装置实施例的基础上,上述获取应用程序的资源引用关系集合,其实现方式可以是:根据查找到的资源引用数据获取应用程序的资源引用关系集合。
本申请实施例提供的装置,可以通过遍历一次可扩展标记语言文件,即确定被引用资源,也获得资源间的引用关系,优化处理过程,提高处理效率。
在上述任意装置实施例的基础上,上述分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,其实现方式可以是:将各个第一冗余资源添加到队列中;依次从所述队列中读取第一冗余资源作为根节点遍历上述资源引用关系集合。
本申请实施例提供的装置,将第一冗余资源添加到队列中,利用队列先进先出的特性,可以在确定第一冗余资源的过程中,利用已经确定了的第一冗余资源对资源引用关系集合进行遍历,进一步提高处理效率。
在上述任意装置实施例的基础上,上述查找引用计数的计数值为设定值的第二冗余资源,其实现方式可以是:
在第一冗余资源之外的资源中查找引用计数的计数值为设定值的第二冗余资源。
本申请实施例提供的装置,可以在全部资源范围内再次查找冗余资源,也可以仅在第一冗余资源之外的资源中查找冗余资源,以缩小查找范围,进一步提高处理效率。
在上述任意装置实施例的基础上,按照第一修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第一资源索引或第二资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值加1;按照第二修改方式修改确定的被引用资源的引用计数的计数值,其实现方式可以是:每根据第三资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值减1。
本申请实施例中,将单位修改量确定为1,且修改方式为加1或减1,其处理方式简单、快速。
在上述任意装置实施例的基础上,可以输出上述第一冗余资源和上述第二冗余资源,也可以直接删除上述第一冗余资源和上述第二冗余资源。
具体是将冗余资源的查找结果通知给用户,还是自动删除查找到的冗余资源,可以在实际应用中根据情况和需求确定。
基于与方法同样的发明构思,本申请实施例提供一种计算机设备,包括处理器和存储器;存储器用于存储执行各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。
本申请实施例提供的计算机设备,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的计算机设备,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
图3示出的是与本申请实施例提供的方法实施例相关的计算机设备的部分结构的框图。参考图3,计算机设备包括:
电源,通过电源管理系统与中央处理器逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能;主板,提供部件之间的电连接通路,各个部件通过主板进行电信号传输,各个部件通过插接、焊接等方式安装在主板上;中央处理器,主要包括算术逻辑运算单元(ALU,Arithmetic Logic Unit)、程序计数器(PC,Program Counter)、寄存器组、高速缓冲存储器(Cache)以及用于传输数据、控制及状态的总线(Bus)接口;内存储器、磁盘(即上述保存有执行各个方法实施例所述方法的程序的存储器)、输入单元(包括鼠标、键盘、触控面板等)、显示单元(包括显示器和显卡)和网卡通过总线与中央处理器进行数据交换。
执行各个方法实施例所述方法的程序及相关的数据首先从磁盘中被读取到内存储器中,中央处理器从内存储器中读取并加载程序。
本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于与方法同样的发明构思,本申请实施例提供一种计算机可读存储介质,存储有执行第一方面各个实施例所述方法的程序。
本申请实施例提供的计算机可读存储介质,通过遍历可扩展标记语言文件和代码指令的方式确定被引用资源,按照第一修改方式修改被引用资源的引用计数的计数值。那么就可以通过资源的计数值发现未被引用的资源,即冗余资源(第一冗余资源)。若某资源仅被冗余资源引用,那么该资源也是冗余资源,为了发现这部分冗余资源,利用第一冗余资源对资源引用关系集合进行遍历,按照第二修改方式修改遍历到的被引用资源的引用计数的计数值,由于两种修改方式的单位修改量是相反数,就意味着通过这次修改,删除之前被冗余资源引用所带来的计数值修改痕迹,若某资源仅被冗余资源引用,经过这次修改后,则可以通过资源的计数值发现其为冗余资源(第二冗余资源)。可见,本申请实施例提供的计算机可读存储介质,通过引用计数统计的方式自动查找冗余资源,较之人工查找方式效率更高。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (10)

1.一种应用程序的冗余资源处理方法,其特征在于,包括:
通过遍历应用程序的可扩展标记语言文件,查找资源引用数据,所述资源引用数据包括资源引用标识和被引用资源的第一资源索引;
根据查找到的资源引用数据中包括的所述第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
通过遍历所述应用程序的代码指令,查找资源引用代码指令,所述资源引用代码指令包括被引用资源的第二资源索引;
根据查找到的资源引用代码指令中包括的所述第二资源索引确定被引用资源,并按照所述第一修改方式修改确定的被引用资源的引用计数的计数值;
查找引用计数的计数值为设定值的第一冗余资源,资源的引用计数的计数值为设定值表示本资源未被引用;
获取所述应用程序的资源引用关系集合,所述资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引;
分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值;
查找引用计数的计数值为所述设定值的第二冗余资源;
其中,所述第一修改方式使用的单位修改量与所述第二修改方式使用的单位修改量为相反数,所述单位修改量为单次确定被引用资源对应的引用计数的计数值的修改量。
2.根据权利要求1所述的应用程序的冗余资源处理方法,其特征在于,所述方法还包括:利用所述应用程序的各个资源的资源类型、资源名称和标识常量,生成基于哈希存储结构的数据集合;
所述根据查找到的资源引用数据中包括的所述第一资源索引确定被引用资源,包括:根据查找到的资源引用数据中包括的所述第一资源索引,在所述基于哈希存储结构的数据集合中确定被引用资源,所述第一资源索引包括资源类型和资源名称;
所述根据查找到的资源引用代码指令中包括的所述第二资源索引确定被引用资源,包括:根据查找到的资源引用代码指令中包括的所述第二资源索引,在所述基于哈希存储结构的数据集合中确定被引用资源,所述第二资源索引包括:标识常量,或者,资源类型和资源名称;
所述根据遍历到的资源节点中包括的第三资源索引确定被引用资源,包括:根据遍历到的资源节点中包括的第三资源索引,在所述基于哈希存储结构的数据集合中确定被引用资源,所述第三资源索引包括:标识常量,或者,资源类型和资源名称。
3.根据权利要求1或2所述的应用程序的冗余资源处理方法,其特征在于,所述获取所述应用程序的资源引用关系集合,包括:
根据查找到的资源引用数据获取所述应用程序的资源引用关系集合。
4.根据权利要求1或2所述的应用程序的冗余资源处理方法,其特征在于,所述方法还包括:将各个所述第一冗余资源和所述第二冗余资源添加到队列中;
所述分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,包括:
依次从所述队列中读取冗余资源作为根节点遍历所述资源引用关系集合,直至所述队列为空,所述冗余资源包括第一冗余资源和第二冗余资源。
5.根据权利要求1或2所述的应用程序的冗余资源处理方法,其特征在于,所述查找引用计数的计数值为设定值的第二冗余资源,包括:
在所述第一冗余资源之外的资源中查找引用计数的计数值为设定值的第二冗余资源。
6.根据权利要求1或2所述的应用程序的冗余资源处理方法,其特征在于,所述按照第一修改方式修改确定的被引用资源的引用计数的计数值,包括:每根据所述第一资源索引或第二资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值加1;
所述按照第二修改方式修改确定的被引用资源的引用计数的计数值,包括:每根据所述第三资源索引确定一次被引用资源,将本次确定的被引用资源的引用计数的计数值减1。
7.根据权利要求1或2所述的应用程序的冗余资源处理方法,其特征在于,所述方法还包括:
输出所述第一冗余资源和所述第二冗余资源;
或者,
删除所述第一冗余资源和所述第二冗余资源。
8.一种应用程序的冗余资源处理装置,其特征在于,包括:
第一遍历模块,用于通过遍历应用程序的可扩展标记语言文件,查找资源引用数据,所述资源引用数据包括资源引用标识和被引用资源的第一资源索引;
第一计数模块,用于根据查找到的资源引用数据中包括的所述第一资源索引确定被引用资源,并按照第一修改方式修改确定的被引用资源的引用计数的计数值;
第二遍历模块,用于通过遍历所述应用程序的代码指令,查找资源引用代码指令,所述资源引用代码指令包括被引用资源的第二资源索引;
第二计数模块,用于根据查找到的资源引用代码指令中包括的所述第二资源索引确定被引用资源,并按照所述第一修改方式修改确定的被引用资源的引用计数的计数值;
第一冗余资源查找模块,用于查找引用计数的计数值为设定值的第一冗余资源,资源的引用计数的计数值为设定值表示本资源未被引用;
引用关系集合获取模块,用于获取所述应用程序的资源引用关系集合,所述资源引用关系集合包括多个资源节点,每个资源节点对应一个资源,包括所对应资源的第三资源索引和被所对应资源引用的资源的第三资源索引;
第三计数模块,用于分别以查找到的每个第一冗余资源为根节点遍历所述资源引用关系集合,根据遍历到的资源节点中包括的第三资源索引确定被引用资源,并按照第二修改方式修改确定的被引用资源的引用计数的计数值;
第二冗余资源查找模块,用于查找引用计数的计数值为设定值的第二冗余资源;
其中,所述第一修改方式使用的单位修改量与所述第二修改方式使用的单位修改量为相反数,所述单位修改量为单次确定被引用资源对应的引用计数的计数值的修改量。
9.一种计算机设备,其特征在于,包括处理器和存储器;
所述存储器用于存储执行权利要求1至7任一项所述方法的程序;
所述处理器被配置为执行所述存储器中存储的程序。
10.一种计算机可读存储介质,其特征在于,存储有执行权利要求1至7任一项所述方法的程序。
CN201911330486.4A 2019-12-20 2019-12-20 应用程序的冗余资源处理方法、装置、设备及存储介质 Active CN111078276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911330486.4A CN111078276B (zh) 2019-12-20 2019-12-20 应用程序的冗余资源处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911330486.4A CN111078276B (zh) 2019-12-20 2019-12-20 应用程序的冗余资源处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111078276A CN111078276A (zh) 2020-04-28
CN111078276B true CN111078276B (zh) 2022-12-30

Family

ID=70316527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911330486.4A Active CN111078276B (zh) 2019-12-20 2019-12-20 应用程序的冗余资源处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111078276B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035119B (zh) * 2020-08-28 2024-03-08 北京奇艺世纪科技有限公司 一种数据删除方法及装置
CN112131211A (zh) * 2020-09-15 2020-12-25 贝壳技术有限公司 一种清除冗余业务数据的方法、装置和存储介质
CN117111950B (zh) * 2023-08-23 2024-03-29 北京云枢创新软件技术有限公司 基于常量宏定义的宏文本展开方法、电子设备和介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590807B2 (en) * 2003-11-03 2009-09-15 Netapp, Inc. System and method for record retention date in a write once read many storage system
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
CN102799659B (zh) * 2012-07-05 2015-01-21 广州鼎鼎信息科技有限公司 一种基于无中心分布系统的全局重复数据删除系统及方法
EP2898424B8 (en) * 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
CN102999433B (zh) * 2012-11-21 2015-06-17 北京航空航天大学 一种虚拟磁盘的冗余数据删除方法及系统
US8990789B2 (en) * 2013-04-18 2015-03-24 Facebook, Inc. Optimizing intermediate representation of script code by eliminating redundant reference count operations
CN105446730B (zh) * 2015-01-21 2018-08-17 胡宝清 一种资源环境模型库构建方法
US10789223B2 (en) * 2016-03-24 2020-09-29 Microsoft Technology Licensing, Llc Hybrid garbage collection in a distributed storage system
CN108874315A (zh) * 2018-06-01 2018-11-23 暨南大学 一种在线数据去重文件系统数据访问性能优化方法
CN109471729B (zh) * 2018-11-15 2024-05-14 平安科技(深圳)有限公司 基于递归的资源清理方法及装置
CN109597798A (zh) * 2018-12-04 2019-04-09 平安科技(深圳)有限公司 网络文件删除方法、装置、计算机设备及存储介质
CN110191342A (zh) * 2019-07-02 2019-08-30 北京字节跳动网络技术有限公司 视频编码方法及设备、视频解码方法及设备

Also Published As

Publication number Publication date
CN111078276A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN111078276B (zh) 应用程序的冗余资源处理方法、装置、设备及存储介质
CN112800095B (zh) 一种数据处理方法、装置、设备及存储介质
KR102361153B1 (ko) 데이터 유형에 관련된 데이터 프로파일링 동작 관리
US20160342636A1 (en) Detecting quasi-identifiers in datasets
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN111177113B (zh) 数据迁移方法、装置、计算机设备和存储介质
US9514184B2 (en) Systems and methods for a high speed query infrastructure
CN112307062B (zh) 数据库聚合查询方法、装置及系统
CN108427580B (zh) 配置对命名重复的检测方法、存储介质和智能设备
CN114841103B (zh) 门级电路的并行仿真方法、系统、存储介质及设备
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
CN116483850A (zh) 数据处理方法、装置、设备以及介质
CN111666201A (zh) 回归测试方法、装置、介质及电子设备
US9679092B1 (en) Constraint handling for parameterizable hardware description language
JP2014186477A (ja) 情報処理装置、情報処理方法、及び、プログラム
US8935200B2 (en) Dynamic database dump
CN115774750A (zh) 数据库入湖配置方法、系统、电子设备及存储介质
CN113296854B (zh) 一种数据加载方法、系统、电子设备及存储介质
CN111143398B (zh) 基于扩展sql函数的超大集合查询方法及装置
CN111736848B (zh) 包冲突定位方法、装置、电子设备及可读存储介质
CN111694729A (zh) 应用测试方法、装置、电子设备和计算机可读介质
CN111125264B (zh) 基于扩展olap模型的超大集合分析方法及装置
CN114428789B (zh) 数据的处理方法及装置
CN110765127B (zh) 事实数据的评分方法、装置、设备及存储介质
CN117520447A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant