CN112783656B - 内存管理方法、介质、装置和计算设备 - Google Patents

内存管理方法、介质、装置和计算设备 Download PDF

Info

Publication number
CN112783656B
CN112783656B CN202110127352.3A CN202110127352A CN112783656B CN 112783656 B CN112783656 B CN 112783656B CN 202110127352 A CN202110127352 A CN 202110127352A CN 112783656 B CN112783656 B CN 112783656B
Authority
CN
China
Prior art keywords
data
memory
garbage collection
storage space
ratio
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
CN202110127352.3A
Other languages
English (en)
Other versions
CN112783656A (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.)
Hangzhou Netease Zhiqi Technology Co Ltd
Original Assignee
Hangzhou Netease Zhiqi 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 Hangzhou Netease Zhiqi Technology Co Ltd filed Critical Hangzhou Netease Zhiqi Technology Co Ltd
Priority to CN202110127352.3A priority Critical patent/CN112783656B/zh
Publication of CN112783656A publication Critical patent/CN112783656A/zh
Application granted granted Critical
Publication of CN112783656B publication Critical patent/CN112783656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

本公开的实施方式提供了一种内存管理方法、介质、装置和计算设备。内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,该方法包括:获取垃圾回收耗时,该垃圾回收耗时表征对该内存中的垃圾对象进行清理所花费的时长;根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值。本公开实施例能够提高内存利用率,并且避免内存溢出。

Description

内存管理方法、介质、装置和计算设备
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及内存管理方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是相关技术。
内存中存储的数据量与内存容量的比值称为内存利用率。如果为数据分配的内存容量过大,有可能无法充分利用内存,也就是内存利用率过高;如果为数据分配的内存容量过小,有可能出现因数据量大于内存容量而导致的内存溢出的风险。可见,内存的设置是提高内存利用率和避免内存溢出的关键,相关技术无法合理设置内存。
发明内容
本公开期望提供一种内存管理方法和装置。
在本公开实施方式的第一方面中,提供了一种内存管理方法,该内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,该方法包括:
获取垃圾回收耗时,该垃圾回收耗时表征对该内存中的垃圾对象进行清理所花费的时长;
根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值。
在本公开的一个实施例中,第一存储空间为强引用内存空间,该第二存储空间为软引用内存空间。
在本公开的一个实施例中,还包括:
根据该第一比值确定该第一存储空间的容量;
在该内存中的数据量大于该第一存储空间的容量的情况下,将超出该第一存储空间的容量部分的第一数据迁移至该第二存储空间;或者,
在该第一存储空间中的数据量小于该第一存储空间的容量、并且该第二存储空间中存在该第二数据的情况下,将该第二存储空间中的至少部分第二数据迁移至该第一存储空间。
在本公开的一个实施例中,将超出该第一存储空间的容量部分的第一数据迁移至该第二存储空间,包括:
基于预设的数据迁移策略在该第一数据中筛选出待迁移的第三数据,将该第三数据由该第一存储空间迁移至该第二存储空间。
在本公开的一个实施例中,获取垃圾回收耗时,包括:
根据该内存的容量查找预先设置的第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;该第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;
根据该垃圾回收耗时建议值确定该垃圾回收耗时。
在本公开的一个实施例中,根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值,包括:
在该垃圾回收耗时不大于该垃圾回收耗时阈值的情况下,将该第一比值调整为等于该第一比值建议值。
在本公开的一个实施例中,根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值,包括:
在该垃圾回收耗时大于该垃圾回收耗时阈值的情况下,将该第一比值确定为小于该第一比值建议值的数值;
根据该第一比值确定该第一存储空间的容量,在该内存中的数据量大于该第一存储空间的容量的情况下,将超出该第一存储空间的容量部分的该第一数据迁移至该第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在该垃圾回收耗时实际值大于该垃圾回收耗时阈值的情况下,将该第一比值的取值减小,并基于减小后的第一比值再次执行该确定第一存储空间的容量的步骤;直至该垃圾回收耗时实际值不大于该垃圾回收耗时阈值的情况下,结束该调整过程。
在本公开的一个实施例中,将该第一比值确定为小于该第一比值建议值的数值,包括:将该第一比值确定为该第一比值建议值的一半;
将第一比值的取值减小,包括:将该第一比值的调整为该第一比值的原取值的一半。
在本公开的一个实施例中,直至该垃圾回收耗时实际值不大于该垃圾回收耗时阈值的情况下,结束该调整过程,包括:
直至该垃圾回收耗时实际值不大于该垃圾回收耗时阈值、并且该垃圾回收耗时实际值与该垃圾回收耗时阈值的差距不大于预设门限的情况下,结束该调整过程。
在本公开的一个实施例中,还包括:
在不同内存容量的情况下,统计该第一比值的不同取值与对应的垃圾回收耗时统计值;
根据该统计的结果,建立在不同内存容量的情况下该第一比值与该垃圾回收耗时统计值的映射关系;
根据该映射关系确定该第一对应关系。
在本公开的一个实施例中,内存还包括索引区域,用于存储该第一数据和该第二数据的索引。
在本公开的一个实施例中,还包括:
在该第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据该被清除的第二数据更新该索引。
在本公开的一个实施例中,还包括:
将该第二存储空间中被清除的第二数据存储入数据库;
从该数据库读取被清除的第二数据;
当该内存中存入新的数据时,将该新的数据与该被清除的第二数据进行聚类,如果聚类成功,则将聚类后的数据存入该内存;
根据该聚类后的数据更新该索引。
在本公开的一个实施例中,第一数据和该第二数据包括舆情文本数据;
该方法还包括:对该内存中的舆情文本数据进行聚类;
对聚类后的数据进行传播路径分析、情感数据分析及舆论走向分析中的至少一项。
在本公开实施方式的第二方面中,提供了一种内存管理装置,该内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,该装置包括:
数据监控统计模块,用于获取垃圾回收耗时,该垃圾回收耗时表征对该内存中的垃圾对象进行清理所花费的时长;
比例动态调整模块,用于根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值。
在本公开的一个实施例中,第一存储空间为强引用内存空间,该第二存储空间为软引用内存空间。
在本公开的一个实施例中,装置还包括:
数据迁移模块,用于根据该第一比值确定该第一存储空间的容量;在该内存中的数据量大于该第一存储空间的容量的情况下,将超出该第一存储空间的容量部分的第一数据迁移至该第二存储空间;或者,在该第一存储空间中的数据量小于该第一存储空间的容量、并且该第二存储空间中存在第二数据的情况下,将该第二存储空间中的至少部分第二数据迁移至该第一存储空间。
在本公开的一个实施例中,数据迁移模块用于:
基于预设的数据迁移策略在该第一数据中筛选出待迁移的第三数据,将该第三数据由该第一存储空间迁移至该第二存储空间。
在本公开的一个实施例中,数据监控统计模块用于:
根据该内存的容量查找预先设置的第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;该第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;根据该垃圾回收耗时建议值确定该垃圾回收耗时。
在本公开的一个实施例中,比例动态调整模块用于:
在该垃圾回收耗时不大于该垃圾回收耗时阈值的情况下,将该第一比值调整为等于该第一比值建议值。
在本公开的一个实施例中,比例动态调整模块用于:
在该垃圾回收耗时大于该垃圾回收耗时阈值的情况下,将该第一比值确定为小于该第一比值建议值的数值;
根据该第一比值确定该第一存储空间的容量,在该内存中的数据量大于该第一存储空间的容量的情况下,将超出该第一存储空间的容量部分的该第一数据迁移至该第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在该垃圾回收耗时实际值大于该垃圾回收耗时阈值的情况下,将该第一比值的取值减小,并基于减小后的第一比值再次执行该确定第一存储空间的容量的步骤;直至该垃圾回收耗时实际值不大于该垃圾回收耗时阈值的情况下,结束该调整过程。
在本公开的一个实施例中,比例动态调整模块在将该第一比值确定为小于该第一比值建议值的数值时,将该第一比值确定为该第一比值建议值的一半;
该比例动态调整模块在将该第一比值的取值减小时,将该第一比值的调整为该第一比值的原取值的一半。
在本公开的一个实施例中,比例动态调整模块在该垃圾回收耗时实际值不大于该垃圾回收耗时阈值、并且该垃圾回收耗时实际值与该垃圾回收耗时阈值的差距不大于预设门限的情况下,结束调整过程。
在本公开的一个实施例中,数据监控统计模块还用于:
在不同内存容量的情况下,统计该第一比值的不同取值与对应的垃圾回收耗时统计值;
根据该统计的结果,建立在不同内存容量的情况下该第一比值与该垃圾回收耗时统计值的映射关系;
根据该映射关系确定该第一对应关系。
在本公开的一个实施例中,内存还包括索引区域,用于存储该第一数据和该第二数据的索引。
在本公开的一个实施例中,还包括:
数据同步模块,用于在该第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据该被清除的第二数据更新该索引。
在本公开的一个实施例中,还包括增量离线聚类模块,用于:
将该第二存储空间中被清除的第二数据存储入数据库;
从该数据库读取该被清除的第二数据;
当该内存中存入新的数据时,将该新的数据与该被清除的第二数据进行聚类,如果聚类成功,则将聚类后的数据存入该内存;
根据该聚类后的数据更新该索引。
在本公开的一个实施例中,第一数据和该第二数据包括舆情文本数据;
该装置还包括:
内存区聚类模块,用于对该内存中的舆情文本数据进行聚类;
分析模块,用于对聚类后的数据进行传播路径分析、情感数据分析及舆论走向分析中的至少一项。
在本公开实施方式的第三方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述内存管理方法的步骤。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现内存管理方法的步骤。
根据本公开实施方式的内存管理方法和装置,根据垃圾回收耗时和预先设置的垃圾回收耗时阈值,调整内存中的第一存储空间的容量与该内存的容量的比值,从而合理调整内存中不同存储空间的容量占比,提高内存利用率且避免内存溢出。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1是本公开的实施方式的一个示例性应用场景的框架示意图;
图2示意性地示出了根据本公开一实施方式的内存管理方法实现流程图;
图3示意性地示出了根据本公开一实施方式的对第一存储空间和/或第一存储空间中存储的数据进行迁移的实现流程图;
图4示意性地示出了根据本公开一实施方式的种内存结构及内存管理方式示意图;
图5示意性地示出了根据本公开一实施方式的内存管控模块的结构及调整容量占比的方式示意图
图6示意性地示出了根据本公开一实施方式的获取垃圾回收耗时的实现流程图;
图7示意性地示出了根据本公开一实施方式的强引用内存占比与垃圾回收耗时的对应关系示意图;
图8示意性地示出了根据本公开一实施方式的调节第一存储空间的容量与内存容量的第一比值的实现流程图;
图9示意性地示出了根据本公开一实施方式中,增量离线聚类模块对软引用内存区域中被淘汰的数据进行二次聚类的实现方式示意图;
图10示意性地示出了根据本公开一实施方式中,增量离线聚类模块对已淘汰的数据二次聚类的实现流程图;
图11示意性地示出了根据本公开一实施方式的增量离线聚类模块所处理数据的流向示意图;
图12示意性地示出了根据本公开一实施方式的用于内存管理方法的介质示意图;
图13示意性地示出了根据本公开一实施方式的内存管理装置结构示意图;
图14示意性地示出了根据本公开一实施方式的计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种内存管理方法、介质、装置和计算设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,相关技术无法合理设置内存,导致无法充分利用内存或存在内存溢出的风险。
有鉴于此,本公开提供一种内存管理方法和装置,将内存划分为至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间。内存划分后的其中一个存储空间(第一存储空间或第二存储空间)可以被进行垃圾回收,当内存空间不足时会被回收,从而避免产生内存溢出的问题;由于可以实时回收内存空间,也就不需要预先分配过大的内存容量,因此能够提高内存利用率。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图1,图1是本公开的实施方式的一个示例性应用场景的框架示意图。其中,用户通过用户设备上的客户端101与进行舆情文本聚类和分析的服务器102进行交互。本领域技术人员可以理解,图1所示的框架示意图仅是本公开的实施方式可以在其中得以实现的一个示例。本公开实施方式的适用范围不受到该框架任何方面的限制。
需要注意的是,此处的客户端可以是现有的、正在研发或将来研发的、能够通过任何形式的有限和/或无线连接(例如,Wi-Fi、LAN、蜂窝移动通信、同轴电缆等)实现与服务器102进行交互的任何用户设备;包括但不限于:现有的、正在研发或将来研发的智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。
还需要注意的是,此处的服务器102仅是现有的、正在研发的或将来研发的、能够向用户提供舆情文本聚类和分析服务的设备的一个示例。本公开的实施方式在此方面不受任何限制。
基于图1所示的框架,服务器102可以响应于接收舆情文本数据,将舆情文本数据保存在内存中,该内存可以被划分为至少包括用于存储强引用数据的强引用内存空间和存储软引用数据的软引用内存空间。服务器可以根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整强引用内存空间的容量与内存容量的比值。在强引用内存空间存在空闲的情况下,服务器可以优先将接收到的舆情文本数据保存在强引用内存空间。由于软引用内存空间中存储的数据允许被垃圾回收操作所清除,当内存空间不足时可以通过回收相应软引用内存空间的内存的方式避免数据溢出;并且,由于可以实时回收内存空间,也就不需要预先分配过大的内存容量,因此能够提高内存利用率。
示例性方法
下面参考图2来描述根据本公开示例性实施方式的内存管理方法。本公开将内存划分为至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,如图2所示,本公开的内存管理方法包括以下步骤:
S21:获取垃圾回收耗时,该垃圾回收耗时表征对该内存中的垃圾对象进行清理所花费的时长;
S22:根据该垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整该第一存储空间的容量与该内存的容量的第一比值。
通过上述方式,本公开实施例将内存划分为至少包括第一存储控制和第二存储空间,因此可以将其中的一个存储空间设置为能够被进行垃圾回收,在该存储空间中存储允许被删除的数据;将另一个存储空间设置为不能被进行垃圾回收,在该存储空间中存储的数据不能被垃圾回收操作所清除。由于允许对其中的一个存储空间被进行垃圾回收,当内存空间不足时可以通过回收相应存储空间的内存的方式避免数据溢出;并且,由于可以实时回收内存空间,也就不需要预先分配过大的内存容量,因此能够提高内存利用率。
在一种实施方式中,上述第一存储空间可以为强引用内存空间,第二存储空间可以为软引用内存空间。相应的,第一存储空间中存储的第一数据是强引用对象,第二存储空间中存储的第二数据是软引用对象。在JAVA虚拟机技术中,强引用对象不能被执行垃圾回收,软引用对象能够被执行垃圾回收。垃圾回收是一种内存管理功能,能够主动发现程序中已经不再使用的对象,并将这些不再使用的对象清理掉,从而释放更多的内存。
上述实施方式将内存划分为至少包括强引用内存空间和软引用内存空间,根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整强引用内存空间的容量与内存的容量的比值。由于软引用内存空间中存储的软引用对象允许被垃圾回收操作所清除,当内存空间不足时可以通过回收相应存储空间的内存的方式避免数据溢出;并且,由于可以实时回收内存空间,也就不需要预先分配过大的内存容量,因此能够提高内存利用率。
在另一种实施方式中,上述第一存储空间可以为软引用内存空间,第二存储空间可以为强引用内存空间;相应的,第一存储空间中存储的第一数据是软引用对象,第二存储空间中存储的第二数据是强引用对象。
在以下内容中,以第一存储空间为强引用内存空间,第二存储空间为软引用内存空间为例进行说明。
单纯从内存使用效果的角度来看,强引用内存空间占比越大越好,但是强引用内存空间占比越大会导致垃圾回收耗时越大。因此,为了兼顾内存使用效果和垃圾回收耗时性能,本公开根据实时监控的垃圾回收耗时及预先设置的垃圾回收耗时阈值调整第一存储空间的容量占比(由于内存主要包括第一存储空间和第二存储空间,调整第一存储空间的容量占比,也就意味着同时调整了第二存储空间的容量占比),从而合理分配内存中各个存储空间的容量,在满足垃圾回收耗时阈值的情况下,尽可能地使强引用内存空间的占比更大,使内存的使用效果和垃圾回收耗时的性能达到均衡。
在一种可能的实施方式中,在调整第一存储空间的容量与内存的容量的第一比值之后,可以进一步对第一存储空间和/或第一存储空间中存储的数据进行迁移,图3示意性地示出了根据本公开一实施方式的对第一存储空间和/或第一存储空间中存储的数据进行迁移的实现流程图,包括:
S31:根据第一比值确定第一存储空间的容量;
S32:在内存中的数据量大于第一存储空间的容量的情况下,将超出第一存储空间的容量部分的第一数据迁移至第二存储空间;或者,在第一存储空间中的数据量小于第一存储空间的容量、并且第二存储空间中存在第二数据的情况下,将第二存储空间中的至少部分第二数据迁移至第一存储空间。
上述过程中,根据第一比值确定第一存储空间的容量,并在内存中数据大于第一存储空间的容量时,将超出部分迁移至第二存储空间,能够保证第一存储空间始终不存在数据溢出的情况;而在第一存储空间中的数据量小于第一存储空间的容量时,将第一存储空间中存在的数据迁移至第一存储空间,能够保证数据优先保存在第一存储空间中。
以内存中存储的第一数据和第二数据包括舆情文本数据为例,本公开还可以进一步对内存中的舆情文本数据进行聚类。为了实现对舆情文本数据进行聚类,需要构建倒排索引和正序索引,倒排索引存储的主键是词语的编码,值是对应的文本文档编码集合;正序索引存储主键是文档编码,值是对应的文本向量。通过倒排索引的构建,先找到符合条件的候选相似文本,避免进行全局匹配。待匹配的文本向量,通过其包含的词语编码序号,去倒排索引中找到包含该词语的所有文本。这样可以快速查询候选相似文本,避免对所有的文本进行全局匹配,提高了聚类效率。
图4示意性地示出了根据本公开一实施方式的种内存结构及内存管理方式示意图。如图4所示,内存区域包括强引用内存区域和软引用内存区域,其中强引用内存区域和软引用内存区域存储舆情文本数据;该内存区域还可以包括索引区域,用于存储第一数据(如强引用内存区域中存储的数据)和第二数据(如软引用内存区域中存储的数据)的索引。
在图4中,强引用内存区域存储的数据包括强引用的聚类类目信息,如图4中的哈希映射(HashMap);软引用内存区域存储的数据包括软引用的聚类类目信息,如图4中的软哈希映射(SoftHashMap)。其中,强引用的聚类类目信息不能被执行垃圾回收,只能被手动删除;软引用的聚类类目信息可以被执行垃圾回收。索引区域存储倒排索引,倒排索引具体如图4中的索引映射(IndexMap),倒排索引不能被执行垃圾回收。
如图4所示,将一部分数据存储在强引用内存区域,将需要淘汰的数据放入软引用内存区域。软引用内存区域在JAVA虚拟机内存不足时会被回收,从而能够避免产生内存溢出的问题。由于软引用内存区域的存在,能够使聚类信息的存储数据量与JAVA虚拟机内存大小自动匹配,提高内存利用率,同时避免内存溢出的风险,从而解决舆情分析领域文本数据聚类过程的内存管理问题。
在一些实施方式中,将超出第一存储空间的容量部分的第一数据迁移至第二存储空间,包括:
基于预设的数据迁移策略在第一数据中筛选出待迁移的第三数据,将第三数据由第一存储空间迁移至第二存储空间。
其中,上述预设的数据迁移策略包括但不限于先进先出(FIFO,First In FirstOut先进先出)、最近最少使用(LRU,Least Recently Used)、最不经常使用(LFU,LeastFrequently Used)策略。
如图4所示,为了能够合理使用强引用内存区域和软引用内存区域,在一些实施方式中引入内存管控模块。该模块可以分为三个子模块,分别是数据迁移模块、数据监控统计模块、强软内存区域比例动态调整模块(简称比例动态调整模块)。
其中,数据监控统计模块实时监控垃圾回收耗时。比例动态调整模块根据垃圾回收耗时和垃圾回收耗时阈值,动态调整强引用内存区域的容量与整个内存的容量的第一比值,实现在实时监控的垃圾回收耗时不超过垃圾回收耗时阈值的前提下充分利用内存。数据迁移模块根据该第一比值进行数据迁移。
由于软引用内存区域中的数据被JAVA虚拟机清理后,需要保持倒排索引内存数据与聚类信息内存数据的一致性。为了保证前述一致性,本公开还可以包括:在第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据被清除的第二数据更新索引。如图4所示,在一些实施方式中引入数据同步模块。数据同步模块负责保证倒排索引和聚类信息的数据同步,在软引用内存区域中的数据被JAVA虚拟机清除后,通过聚类信息KEY调用回调方法,同步清理掉倒排索引中的数据。
进一步地,由于软引用内存区域中的一些数据被清除之后,对于长周期的舆情文本数据,存在对舆情文本数据聚类失败的情况。为了避免聚类失败的情况,本公开还可以包括:将第二存储空间中被清除的第二数据存储入数据库;从该数据库读取被清除的第二数据;当内存中存入新的数据时,将该新的数据与被清除的第二数据进行聚类,如果聚类成功,则将聚类后的数据存入内存;根据该聚类后的数据更新索引。如图4所示,在一些实施方式中引入增量离线聚类模块,由上述的数据同步模块记录下内存淘汰数据的时间范围,主动触发增量离线聚类模块针对特定时间窗口的数据进行二次聚类。
上述内容结合图4,简述了本公开提出的内存管理方法的各个步骤、以及执行上述各个步骤的模块。上述模块仅为举例,本公开还可以采用其他相关模块执行上述步骤。以下详细介绍上述各个步骤及相应模块。
第一部分,软引用内存区域:
在一些实施方式中,软引用内存区域用于存储舆情文本聚类信息。具体来说,将倒排索引数据存储在强引用内存区域,该内存区域的数据只能被手动删除,不能被JAVA虚拟机主动清理。聚类信息存储在强引用内存区域和软引用内存区域中,如将最近一段时间范围内的数据存储在强引用内存区域,按照LRU策略淘汰过期数据,将过期输入存储在软引用内存区域。软引用内存区域在JAVA虚拟机内存不足时可以被回收,从而能够避免产生内存溢出的问题。由于软引用内存区域的存在,能够让聚类信息的存储数据量与JAVA虚拟机内存大小自动匹配,同时避免内存溢出的风险,从而解决舆情分析领域长周期文本聚类内存管理问题。
本公开可以利用JAVA中的软引用(SoftReference)对象将软引用内存区域中被淘汰的软引用对象传入一个内存队列中,再调用get函数获取内存队列中被淘汰的软引用对象,之后删除该被淘汰的软引用对象。
由于强引用内存区域和软引用内存区域中均存储舆情文本聚类信息,在读取舆情文本聚类信息时,可以首先从强引用内存区域查询,如果能够查询到,则直接返回该舆情文本聚类信息;如果查询不到,则在软引用内存区域查询,并返回查询到的舆情文本聚类信息。可见,软引用内存区域的划分并不妨碍对舆情文本聚类信息的读取。
第二部分,内存管控模块:
内存管控模块用于调整强引用内存区域和软引用内存区域在内存中的容量占比。图5示意性地示出了根据本公开一实施方式的内存管控模块的结构及调整容量占比的方式示意图。如图5所示,内存管控模块分为三个子模块,分别是数据迁移模块、数据监控统计模块、强软内存区域比例动态调整模块(简称比例动态调整模块)。数据迁移模块采用预设策略,将数据量大于强引用内存区域容量的强引用数据移动到到软引用内存区域。软引用内存区域可以继续访问数据,但当内存使用率达到100%时会被JAVA虚拟机清理。数据监控统计模块监控强、软内存区域的容量比例分配与垃圾回收耗时的统计数据。通过统计数据,比例动态调整模块动态调节强引用、软引用内存区域容量的比例,能够在充分利用内存的基础上,快速调整内存分配比例,使得垃圾回收时间保持在合理范围内。其中,前述预设策略包括但不限于先进先出(FIFO,First In First Out先进先出)、最近最少使用(LRU,LeastRecently Used)、最不经常使用(LFU,Least Frequently Used)策略。
比例动态调整模块获取垃圾回收耗时,根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整第一存储空间的容量与内存的容量的第一比值。图6示意性地示出了根据本公开一实施方式的获取垃圾回收耗时的实现流程图,包括:
S61:根据内存的容量查找预先设置的第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;该第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;
S62:根据该垃圾回收耗时建议值确定垃圾回收耗时。
表1是上述第一对应关系的一个示例。
表1
内存容量 1G 2G 4G 8G 16G 32G
第一比值建议值 50% 65% 75% 85% 90% 95%
垃圾回收耗时建议值 45ms 75ms 100ms 200ms 250ms 300ms
以表1为例,如果内存容量为4G,根据表1所示的第一对应关系,可以查找到4G的内存容量对应的第一比值建议值为75%,垃圾回收耗时建议值为100ms。
在上述表1中,随着内存大小的增大,第一比值建议值也从50%增长到95%左右。该原因在于随着内存的增大,在数据量不变的情况下,主要预留给软引用区域的内存大小保留在合理的范围内,就可以将耗时稳定在一定的阈值以内。
相应的,本公开可以进一步包括建立上述第一对应关系的过程,包括:
在不同内存容量的情况下,统计该第一比值的不同取值与对应的垃圾回收耗时统计值;
根据该统计的结果,建立在不同内存容量的情况下该第一比值与该垃圾回收耗时统计值的映射关系;
根据该映射关系确定第一对应关系。
本公开可以采用数据监控统计模块来统计不同容量内存的情况下,第一比值的不同取值与对应的垃圾回收耗时统计值。
强引用内存所占比例越大,一次全量垃圾回收的耗时就越长。简单来说,强引用占比越大,一次全量垃圾回收后剩余的对象就越多,因此导致根节点扫描、内存碎片的几率就越大,那么垃圾回收过程中的内存整理需要时间也随之增大。更加严重的是,强引用占据了大量长周期对象,内存在较短时间内就被用完,因此全量垃圾回收的频率会明显增大。图7示意性地示出了根据本公开一实施方式的强引用内存占比与垃圾回收耗时的对应关系示意图。如图7所示,横坐标是强引用内存的占比,纵坐标是单次垃圾回收实际t和单位时间垃圾回收频率F的乘积,表示一段时间内垃圾回收的综合耗时。如图7所示,在内存大小8G的情况下,当强引用内存占比大于85%后,全量垃圾回收的单次耗时和发生频率之乘积呈近似指数增长。因此,内存容量为8G的情况下,85%比例可以认为是上述表1中的第一比例建议值。可见,第一比例建议值可以认为是数据拐点,或者可以理解成***的风险临界点,大于该临界点后垃圾回收时间和频率急剧增大,最终导致数据积压,垃圾回收耗时越来愈大,严重情况下可导致***雪崩宕机。
因此,根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整第一存储空间的容量与内存的容量的第一比值的方式可以包括:在垃圾回收耗时不大于垃圾回收耗时阈值的情况下,将第一比值调整为等于第一比值建议值。
可选地,根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整第一存储空间的容量与内存的容量的第一比值的方式还可以包括:
在垃圾回收耗时大于垃圾回收耗时阈值的情况下,将第一比值确定为小于第一比值建议值的数值;
根据第一比值确定第一存储空间的容量,在内存中的数据量大于该第一存储空间的容量的情况下,将超出该第一存储空间的容量部分的第一数据迁移至第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在该垃圾回收耗时实际值大于垃圾回收耗时阈值的情况下,将该第一比值的取值减小,并基于该减小后的第一比值再次执行上述确定第一存储空间的容量的步骤;直至垃圾回收耗时实际值不大于垃圾回收耗时阈值的情况下,结束调整过程。
在一些实施方式中,上述确定第一比值的过程可以采用二分查找法例如,上述过程中,将第一比值确定为小于第一比值建议值的数值,包括:将第一比值确定为第一比值建议值的一半;
将第一比值的取值减小,包括:将第一比值的调整为第一比值的原取值的一半。
上述垃圾回收耗时阈值可以根据文本聚类实时性要求确定,如果实时性要求高,可以把垃圾回收耗时阈值设置的小一些,如果对聚类实时性要求不高可以适当把该阈值设置大一些,从而尽量获取更高的内存利用率,提高聚类效果。
另外,上述调整过程中,结束调整的条件可以进一步包括垃圾回收耗时实际值与垃圾回收耗时阈值的差距不大于预设门限,从而在垃圾回收耗时实际值不大于垃圾回收耗时阈值的前提下,尽可能设置更大的强引用内存占比,提高内存使用效果。
可选地,上述直至垃圾回收耗时实际值不大于垃圾回收耗时阈值的情况下,结束调整过程包括:直至垃圾回收耗时实际值不大于垃圾回收耗时阈值、并且垃圾回收耗时实际值与垃圾回收耗时阈值的差距不大于预设门限的情况下,结束调整过程。
图8示意性地示出了根据本公开一实施方式的调节第一存储空间的容量与内存容量的第一比值的实现流程图,在图8所示的示例中,第一存储空间为强引用内存,上述第一比值称为强引用内存占比。图8所示的过程包括以下步骤
S81:读取内存容量。
S82:根据内存容量查找第一对应关系(如表1),确定该内存容量对应的垃圾回收耗时建议值;将当前内存容量对应的垃圾回收耗时(记为t)确定为等于该垃圾回收耗时建议值。
S83:判断t是否不大于垃圾回收耗时阈值(记为T)。如果t≤T,则将强引用内存占比(记为r)确定为等于表1中该内存容量对应的第一比值建议值,输出强引用内存占比。如果t>T,则执行步骤S84。
其中,垃圾回收耗时阈值(即T)可以根据文本聚类实时性要求来确定。例如,对不同类型的舆情文本数据进行聚类时,对应的文本聚类实时性要求不同;因此,可以首先确定内存中存储的舆情文本数据的类型,根据该类型确定对应的文本聚类实时性要求,再根据该文本聚类实时性要求确定垃圾回收耗时阈值(即T)。
S84:将强引用内存占比(即r)确定为等于第一比值建议值的一半。
S85:监控当前的垃圾回收耗时(即t)。
S86:判断t是否不大于垃圾回收耗时阈值(即T)。如果t≤T,则执行步骤S87;如果t>T,则将强引用内存占比(即r)确定为等于当前强引用内存占比的一半,返回执行步骤S85。
S87:判断t和T的差距是否不大于预设门限(记为C)。如果|t-T|≤C,则输出当前的强引用内存占比;如果|t-T|>C,则执行步骤S88。
S88:将强引用内存占比确定(即r)确定为等于当前强引用内存占比与第一比值建议值的中间值,返回执行步骤S85。
举一个具体的示例,当内存容量为8G、垃圾回收耗时阈值T=100ms时,首先根据该内存容量查找表1,得到对应的垃圾回收耗时建议值为200ms,对应的第一比值建议值为85%。垃圾回收耗时建议值大于T,因此将强引用内存占比r的值确定为第一比值建议值的一半,即42.5%。实时监测垃圾回收耗时实际值,假定监测到当前的垃圾回收耗时实际值为70ms,当前的垃圾回收耗时实际值小于T,但与T的差距(即30ms)大于预设门限(假定预设门限为10ms)。那么,再将强引用内存占比r的值确定为等于当前强引用内存占比(即42.5%)与第一比值建议值(即85%)的中间值,即63.75%。将强引用内存占比确定为63.75%后,继续实时监测垃圾回收耗时实际值,再判断当前的垃圾回收耗时实际值是否大于T。如此反复,直至设置的强引用内存占比能够使垃圾回收耗时实际值既小于T、又与T的差距不大于预设门限时,结束对强引用内存占比的调整,输出最终确定的强引用内存占比。
再如,当内存容量为8G、垃圾回收耗时阈值T=300ms时,首先根据该内存容量查找表1,得到对应的垃圾回收耗时建议值为200ms,对应的第一比值建议值为85%。垃圾回收耗时建议值小于T,因此将强引用内存占比r的值确定为等于第一比值建议值,即等于85%,输出该强引用内存占比。
上述设置强引用内存占比的方式的一个原因是:垃圾回收耗时与强引用内存占比是正相关的,强引用内存占比越大,垃圾回收耗时越长。从***性能的角度考虑,垃圾回收耗时越短越好;而从算法效果的角度考虑,强引用内存占比越大越好。因此,设置强引用内存占比,本质上是为了在算法效果和***性能这两个方面达到平衡。由图7所示的强引用内存占比与垃圾回收耗时的对应关系示意图可以看出,在强引用内存占比小于第一比例建议值的范围内,随着强引用内存占比的增大,垃圾回收耗时呈缓慢增长;在强引用内存占比超过第一比例建议值的范围内,随着强引用内存占比的增大,垃圾回收耗时急剧增长;因此第一比例建议值可以认为是数据拐点。
可见,在强引用内存占比大于第一比例建议值的情况下,强引用内存占比增加极小的量将会带来垃圾回收耗实际值极大的增长;相应地,伴随着强引用内存占比小幅增加所带来的算法效果的微弱提升,将会出现***性能的大幅下降,显然是得不偿失的。因此,在垃圾回收耗时建议值不大于垃圾回收耗时阈值的情况下,可以将强引用内存占比设置为等于垃圾回收耗时建议值所对应的第一比例建议值;在垃圾回收耗时建议值大于垃圾回收耗时阈值的情况下,可以将强引用内存占比设置为小于垃圾回收耗时建议值所对应的第一比例建议值、并且使实时监测的垃圾回收耗时实际值尽量接近垃圾回收耗时阈值。
本公开提出数据同步模块负责保证倒排索引和聚类信息的数据同步,在软引用内存区域的数据被JAVA虚拟机清除时,通过聚类信息关键字(KEY)调用回调方法,同步清理掉倒排索引中的数据。具体来说,本公开实施例可以使用JAVA虚拟机的软引用(SoftReference)对象,通过使用软引用对象实现软哈希映射(SoftHashMap),将被JAVA虚拟机清理的软引用对象注册到一个数据队列中,数据同步模块通过拉取数据队列获取被清除的KEY。该模块的实现方案是基于软引用的哈希映射(HashMap),本公开实施例可以扩展哈希映射(HashMap)的回调功能,设计一个回调接口,在软引用对象被清除时根据KEY调用该回调接口。
图9示意性地示出了根据本公开一实施方式中,增量离线聚类模块对软引用内存区域中被淘汰的数据进行二次聚类的实现方式示意图。由于软引用内存区域中一些数据被淘汰,对于长周期的舆情文本数据,可能导致聚类失败的情况。为了解决这一问题,如图9所示,本公开引入增量离线聚类模块,通过数据同步模块记录下内存淘汰数据的实际范围,并由数据同步模块主动触发离线聚类模块针对特定时间窗口的被淘汰数据进行二次聚类。
相比普通的离线聚类,本公开通过数据同步模块记录被内存淘汰的数据时间范围,主动触发增量离线聚类模块针对特定时间范围内的数据进行离线聚类。由于不需要对数据进行全量存储,只需要对内存淘汰掉的那部分数据进行离线聚合,因此该离线聚类模块需要更少的内存,从而解决长周期的文本聚类效果问题。
图10示意性地示出了根据本公开一实施方式中,增量离线聚类模块对已淘汰的数据二次聚类的实现流程图,包括:
S101:数据同步模块触发增量离线聚类模块进行聚类。
S102:增量离线聚类模块读取已淘汰的数据。
S103:当内存中加入新增数据时,增量离线聚类模块读取该新增数据。
S104:增量离线聚类模块将已淘汰的数据与新增数据进行匹配和聚类,判断已淘汰的数据与新增数据是否聚类成功。如果是,则执行步骤S105;否则,返回执行步骤S103。
S105:将聚类后的数据存储至内存中,并删除增量离线聚类模块中的信息。
由于增量离线聚类模块读取的已淘汰的数据可以被删除,因此能够保证增量离线聚类模块只存储没有聚类成功的信息,大大降低了内存消耗。
图11示意性地示出了根据本公开一实施方式的增量离线聚类模块所处理数据的流向示意图。如图11所示,增量离线聚类模块从数据库读取已淘汰的内存数据,当内存中加入新增数据时,增量离线聚类模块读取该新增数据;将已淘汰的内存数据和新增数据进行聚类,如果聚类成功,则将聚类信息更新至内存数据中。
综上,本发明提出四个核心模块,包括软引用内存区域、内存管控模块、数据同步模块、增量离线聚类模块。
软引用内存存储区域,用于存储聚类信息。软引用内存区域在JAVA虚拟机内存不足时会被回收,从而能够不产生内存溢出的问题。由于软引用内存区域的存在,能够让聚类信息的存储数据量与JAVA虚拟机内存大小自动匹配,同时避免内存溢出的风险,从而解决舆情分析领域长周期文本聚类内存管理问题。
内存管控模块用于合理使用强、软引用两个内存区域。通过统计数据,使用二分法快速动态调节强引用、软引用内存区域大小的比例,能够在内存充分利用的基础上,使得垃圾回收时间保持在合理范围内。
数据同步模块负责保证倒排索引和聚类信息的数据同步,在软引用内存区域的数据被JAVA虚拟机清除时,通过聚类信息KEY调用回调方法,同步清理掉倒排索引中的数据。
本公开还引入增量离线聚类模块,通过数据同步模块记录下内存淘汰数据的实际范围,主动触发离线聚类模块针对特定时间窗口的数据进行二次聚类。相比普通的离线聚类,本发明通过数据同步模块记录被内存淘汰的数据时间范围,主动触发增量离线聚类模块针对特定时间范围内的数据镜像离线聚类。由于不需要对数据进行全量存储,只需要对内存淘汰掉的那部分数据进行离线聚合,因此该离线聚类模块需要更少的内存,从而解决长周期的文本聚类效果问题。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图12对本公开示例性实施方式的介质进行说明。
在一些可能的实施方式中,本公开的各个方面还可以实现为一种计算机可读介质,其上存储有程序,当该程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的内存管理方法中的步骤。
具体地,上述处理器执行上述程序时用于实现如下步骤:
获取垃圾回收耗时,垃圾回收耗时表征对内存中的垃圾对象进行清理所花费的时长;
根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整第一存储空间的容量与内存的容量的第一比值。
需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图12所示,描述了根据本公开的实施方式的介质120,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序,并可以在设备上运行。然而,本公开不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图13对本公开示例性实施方式的装置进行说明。
本公开提出一种内存管理装置,该装置管理的内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间;如图13所示,本公开实施例的内存管理装置可以包括:
数据监控统计模块1310,用于获取垃圾回收耗时,垃圾回收耗时表征对内存中的垃圾对象进行清理所花费的时长;
比例动态调整模块1320,用于根据垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整第一存储空间的容量与内存的容量的第一比值。
在一种可能的实施方式中,上述第一存储空间为强引用内存空间,第二存储空间为软引用内存空间。
在一种可能的实施方式中,上述装置还包括:
数据迁移模块1330,用于根据第一比值确定第一存储空间的容量;在内存中的数据量大于第一存储空间的容量的情况下,将超出第一存储空间的容量部分的第一数据迁移至第二存储空间;或者,在第一存储空间中的数据量小于第一存储空间的容量、并且第二存储空间中存在第二数据的情况下,将第二存储空间中的至少部分第二数据迁移至第一存储空间。
在一种可能的实施方式中,上述数据迁移模块1330用于:
基于预设的数据迁移策略在第一数据中筛选出待迁移的第三数据,将第三数据由第一存储空间迁移至第二存储空间。
在一种可能的实施方式中,上述数据监控统计模块1310用于:
根据内存的容量查找预先设置的第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;根据垃圾回收耗时建议值确定垃圾回收耗时。
在一种可能的实施方式中,上述比例动态调整模块1320用于:
在垃圾回收耗时不大于垃圾回收耗时阈值的情况下,将第一比值调整为等于第一比值建议值。
在一种可能的实施方式中,上述比例动态调整模块1320用于:
在垃圾回收耗时大于垃圾回收耗时阈值的情况下,将第一比值确定为小于第一比值建议值的数值;
根据第一比值确定第一存储空间的容量,在内存中的数据量大于第一存储空间的容量的情况下,将超出第一存储空间的容量部分的第一数据迁移至第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在垃圾回收耗时实际值大于垃圾回收耗时阈值的情况下,将第一比值的取值减小,并基于减小后的第一比值再次执行确定第一存储空间的容量的步骤;直至垃圾回收耗时实际值不大于垃圾回收耗时阈值的情况下,结束调整过程。
在一种可能的实施方式中,上述比例动态调整模块1320在将第一比值确定为小于第一比值建议值的数值时,将第一比值确定为第一比值建议值的一半;
上述比例动态调整模块1320在将第一比值的取值减小时,将第一比值的调整为第一比值的原取值的一半。
在一种可能的实施方式中,上述比例动态调整模块1320在垃圾回收耗时实际值不大于垃圾回收耗时阈值、并且垃圾回收耗时实际值与垃圾回收耗时阈值的差距不大于预设门限的情况下,结束调整过程。
在一种可能的实施方式中,上述数据监控统计模块1310还用于:
在不同内存容量的情况下,统计第一比值的不同取值与对应的垃圾回收耗时统计值;
根据统计的结果,建立在不同内存容量的情况下第一比值与垃圾回收耗时统计值的映射关系;
根据映射关系确定第一对应关系。
在一种可能的实施方式中,上述内存还包括索引区域,用于存储第一数据和第二数据的索引。
在一种可能的实施方式中,上述装置还包括:
数据同步模块1340,用于在第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据被清除的第二数据更新索引。
在一种可能的实施方式中,上述装置还包括增量离线聚类模块1350,用于:
将第二存储空间中被清除的第二数据存储入数据库;
从数据库读取被清除的第二数据;
当内存中存入新的数据时,将新的数据与被清除的第二数据进行聚类,如果聚类成功,则将聚类后的数据存入内存;
根据聚类后的数据更新索引。
在一种可能的实施方式中,上述第一数据和第二数据包括舆情文本数据;
在一种可能的实施方式中,上述装置还包括:
内存区聚类模块1360,用于对内存中的舆情文本数据进行聚类;
分析模块1370,用于对聚类后的数据进行传播路径分析、情感数据分析及舆论走向分析中的至少一项。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图14对本公开示例性实施方式的计算设备进行说明。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本公开实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本公开的各种示例性实施方式的内存管理方法中的步骤。
下面参照图14来描述根据本公开的这种实施方式的计算设备140。图14显示的计算设备140仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,计算设备140以通用计算设备的形式表现。计算设备140的组件可以包括但不限于:上述至少一个处理单元1401、上述至少一个存储单元1402,连接不同***组件(包括处理单元1401和存储单元1402)的总线1403。
总线1403包括数据总线、控制总线和地址总线。
存储单元1402可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)14021和/或高速缓存存储器14022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)14023。
存储单元1402还可以包括具有一组(至少一个)程序模块14024的程序/实用工具14025,这样的程序模块14024包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备140也可以与一个或多个外部设备1404(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口1405进行。并且,计算设备140还可以通过网络适配器1406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图14所示,网络适配器1406通过总线1403与计算设备140的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备140使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了内存管理装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (28)

1.一种内存管理方法,其特征在于,所述内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,所述方法包括:
获取垃圾回收耗时,所述垃圾回收耗时表征对所述内存中的垃圾对象进行清理所花费的时长;
根据所述垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整所述第一存储空间的容量与所述内存的容量的第一比值;
其中,所述获取垃圾回收耗时,包括:根据所述内存的容量查找预先设置的第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;所述第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;根据所述垃圾回收耗时建议值确定所述垃圾回收耗时。
2.根据权利要求1所述的方法,其特征在于,所述第一存储空间为强引用内存空间,所述第二存储空间为软引用内存空间。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
根据所述第一比值确定所述第一存储空间的容量;
在所述内存中的数据量大于所述第一存储空间的容量的情况下,将超出所述第一存储空间的容量部分的所述第一数据迁移至所述第二存储空间;或者,
在所述第一存储空间中的数据量小于所述第一存储空间的容量、并且所述第二存储空间中存在所述第二数据的情况下,将所述第二存储空间中的至少部分第二数据迁移至所述第一存储空间。
4.根据权利要求3所述的方法,其特征在于,所述将超出所述第一存储空间的容量部分的所述第一数据迁移至所述第二存储空间,包括:
基于预设的数据迁移策略在所述第一数据中筛选出待迁移的第三数据,将所述第三数据由所述第一存储空间迁移至所述第二存储空间。
5.根据权利要求1所述的方法,其特征在于,所述根据所述垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整所述第一存储空间的容量与
所述内存的容量的第一比值,包括:
在所述垃圾回收耗时不大于所述垃圾回收耗时阈值的情况下,将所述第一比值调整为等于所述第一比值建议值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整所述第一存储空间的容量与所述内存的容量的第一比值,包括:
在所述垃圾回收耗时大于所述垃圾回收耗时阈值的情况下,将所述第一比值确定为小于所述第一比值建议值的数值;
根据所述第一比值确定所述第一存储空间的容量,在所述内存中的数据量大于所述第一存储空间的容量的情况下,将超出所述第一存储空间的容量部分的所述第一数据迁移至所述第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在所述垃圾回收耗时实际值大于所述垃圾回收耗时阈值的情况下,将所述第一比值的取值减小,并基于减小后的第一比值再次执行所述确定所述第一存储空间的容量的步骤;直至所述垃圾回收耗时实际值不大于所述垃圾回收耗时阈值的情况下,结束所述调整过程。
7.根据权利要求6所述的方法,其特征在于,所述将所述第一比值确定为小于所述第一比值建议值的数值,包括:将所述第一比值确定为所述第一比值建议值的一半;
所述将所述第一比值的取值减小,包括:将所述第一比值的调整为所述第一比值的原取值的一半。
8.根据权利要求6所述的方法,其特征在于,所述直至所述垃圾回收耗时实际值不大于所述垃圾回收耗时阈值的情况下,结束所述调整过程,包括:
直至所述垃圾回收耗时实际值不大于所述垃圾回收耗时阈值、并且所述垃圾回收耗时实际值与所述垃圾回收耗时阈值的差距不大于预设门限的情况下,结束所述调整过程。
9.根据权利要求1所述的方法,其特征在于,还包括:
在不同内存容量的情况下,统计所述第一比值的不同取值与对应的垃
圾回收耗时统计值;
根据所述统计的结果,建立在不同内存容量的情况下所述第一比值与所述垃圾回收耗时统计值的映射关系;
根据所述映射关系确定所述第一对应关系。
10.根据权利要求1或2所述的方法,所述内存还包括索引区域,用于存储所述第一数据和所述第二数据的索引。
11.根据权利要求10所述的方法,其特征在于,还包括:
在所述第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据所述被清除的第二数据更新所述索引。
12.根据权利要求11所述的方法,其特征在于,还包括:
将所述第二存储空间中被清除的第二数据存储入数据库;
从所述数据库读取所述被清除的第二数据;
当所述内存中存入新的数据时,将所述新的数据与所述被清除的第二数据进行聚类,如果聚类成功,则将聚类后的数据存入所述内存;
根据所述聚类后的数据更新所述索引。
13.根据权利要求1或2所述的方法,其特征在于,所述第一数据和所述第二数据包括舆情文本数据;
所述方法还包括:对所述内存中的舆情文本数据进行聚类;
对聚类后的数据进行传播路径分析、情感数据分析及舆论走向分析中的至少一项。
14.一种内存管理装置,其特征在于,所述内存至少包括用于存储第一数据的第一存储空间以及用于存储第二数据的第二存储空间,所述装置包括:
数据监控统计模块,用于获取垃圾回收耗时,所述垃圾回收耗时表征对所述内存中的垃圾对象进行清理所花费的时长;
比例动态调整模块,用于根据所述垃圾回收耗时以及预先设置的垃圾回收耗时阈值,调整所述第一存储空间的容量与所述内存的容量的第一比值;
所述数据监控统计模块还用于:根据所述内存的容量查找预先设置的
第一对应关系,得到对应的第一比值建议值和垃圾回收耗时建议值;所述第一对应关系表征不同的内存容量对应的第一比值建议值和垃圾回收耗时建议值;根据所述垃圾回收耗时建议值确定所述垃圾回收耗时。
15.根据权利要求14所述的装置,其特征在于,所述第一存储空间为强引用内存空间,所述第二存储空间为软引用内存空间。
16.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:
数据迁移模块,用于根据所述第一比值确定所述第一存储空间的容量;在所述内存中的数据量大于所述第一存储空间的容量的情况下,将超出所述第一存储空间的容量部分的所述第一数据迁移至所述第二存储空间;或者,在所述第一存储空间中的数据量小于所述第一存储空间的容量、并且所述第二存储空间中存在所述第二数据的情况下,将所述第二存储空间中的至少部分第二数据迁移至所述第一存储空间。
17.根据权利要求16所述的装置,其特征在于,所述数据迁移模块用于:
基于预设的数据迁移策略在所述第一数据中筛选出待迁移的第三数据,将所述第三数据由所述第一存储空间迁移至所述第二存储空间。
18.根据权利要求14所述的装置,其特征在于,所述比例动态调整模块用于:
在所述垃圾回收耗时不大于所述垃圾回收耗时阈值的情况下,将所述第一比值调整为等于所述第一比值建议值。
19.根据权利要求18所述的装置,其特征在于,所述比例动态调整模块用于:
在所述垃圾回收耗时大于所述垃圾回收耗时阈值的情况下,将所述第一比值确定为小于所述第一比值建议值的数值;
根据所述第一比值确定所述第一存储空间的容量,在所述内存中的数据量大于所述第一存储空间的容量的情况下,将超出所述第一存储空间的容量部分的所述第一数据迁移至所述第二存储空间;
从垃圾回收日志中获取当前的垃圾回收耗时实际值,在所述垃圾回收耗时实际值大于所述垃圾回收耗时阈值的情况下,将所述第一比值的取值
减小,并基于减小后的第一比值再次执行所述确定所述第一存储空间的容量的步骤;直至所述垃圾回收耗时实际值不大于所述垃圾回收耗时阈值的情况下,结束所述调整过程。
20.根据权利要求19所述的装置,其特征在于,所述比例动态调整模块在将所述第一比值确定为小于所述第一比值建议值的数值时,将所述第一比值确定为所述第一比值建议值的一半;
所述比例动态调整模块在将所述第一比值的取值减小时,将所述第一比值的调整为所述第一比值的原取值的一半。
21.根据权利要求19所述的装置,其特征在于,所述比例动态调整模块在所述垃圾回收耗时实际值不大于所述垃圾回收耗时阈值、并且所述垃圾回收耗时实际值与所述垃圾回收耗时阈值的差距不大于预设门限的情况下,结束调整过程。
22.根据权利要求14所述的装置,其特征在于,所述数据监控统计模块还用于:
在不同内存容量的情况下,统计所述第一比值的不同取值与对应的垃圾回收耗时统计值;
根据所述统计的结果,建立在不同内存容量的情况下所述第一比值与所述垃圾回收耗时统计值的映射关系;
根据所述映射关系确定所述第一对应关系。
23.根据权利要求14或15所述的装置,所述内存还包括索引区域,用于存储所述第一数据和所述第二数据的索引。
24.根据权利要求23所述的装置,其特征在于,还包括:
数据同步模块,用于在所述第二存储空间中的第二数据被清除的情况下,确定被清除的第二数据;根据所述被清除的第二数据更新所述索引。
25.根据权利要求24所述的装置,其特征在于,还包括增量离线聚类模块,用于:
将所述第二存储空间中被清除的第二数据存储入数据库;
从所述数据库读取所述被清除的第二数据;
当所述内存中存入新的数据时,将所述新的数据与所述被清除的第二
数据进行聚类,如果聚类成功,则将聚类后的数据存入所述内存;
根据所述聚类后的数据更新所述索引。
26.根据权利要求14或15所述的装置,其特征在于,所述第一数据和所述第二数据包括舆情文本数据;
所述装置还包括:
内存区聚类模块,用于对所述内存中的舆情文本数据进行聚类;
分析模块,用于对聚类后的数据进行传播路径分析、情感数据分析及舆论走向分析中的至少一项。
27.一种介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-13中任一所述的方法。
28.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-13中任一所述的方法。
CN202110127352.3A 2021-01-29 2021-01-29 内存管理方法、介质、装置和计算设备 Active CN112783656B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110127352.3A CN112783656B (zh) 2021-01-29 2021-01-29 内存管理方法、介质、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110127352.3A CN112783656B (zh) 2021-01-29 2021-01-29 内存管理方法、介质、装置和计算设备

Publications (2)

Publication Number Publication Date
CN112783656A CN112783656A (zh) 2021-05-11
CN112783656B true CN112783656B (zh) 2024-04-30

Family

ID=75759894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110127352.3A Active CN112783656B (zh) 2021-01-29 2021-01-29 内存管理方法、介质、装置和计算设备

Country Status (1)

Country Link
CN (1) CN112783656B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269660A (zh) * 2022-09-26 2022-11-01 平安银行股份有限公司 缓存数据处理方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085732A1 (zh) * 2013-12-10 2015-06-18 中兴通讯股份有限公司 终端内存处理方法、装置及终端
CN106201904A (zh) * 2016-06-30 2016-12-07 网易(杭州)网络有限公司 用于内存垃圾回收的方法及装置
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件***的垃圾回收方法
CN109343796A (zh) * 2018-09-21 2019-02-15 新华三技术有限公司 一种数据处理方法和装置
CN110727605A (zh) * 2019-09-27 2020-01-24 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN111221475A (zh) * 2020-01-04 2020-06-02 苏州浪潮智能科技有限公司 一种存储空间的管理方法、装置、设备及可读介质
CN111352593A (zh) * 2020-02-29 2020-06-30 杭州电子科技大学 一种区分快写和正常写的固态硬盘数据写入方法
CN111352698A (zh) * 2020-02-25 2020-06-30 北京奇艺世纪科技有限公司 一种jvm参数的调整方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516019B2 (en) * 2011-10-03 2013-08-20 Oracle America, Inc. Time-based object aging for generational garbage collectors
US9176869B2 (en) * 2013-07-18 2015-11-03 Globalfoundries Inc Memory use for garbage collected computer environments
US9262331B2 (en) * 2013-10-24 2016-02-16 International Business Machines Corporation Memory management with priority-based memory reclamation
US10223258B2 (en) * 2017-03-21 2019-03-05 Microsoft Technology Licensing, Llc Automated virtual machine performance tuning
US10509722B2 (en) * 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
TWI658361B (zh) * 2017-09-05 2019-05-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US11086776B2 (en) * 2018-08-29 2021-08-10 International Business Machines Corporation Maintaining correctness of pointers from a managed heap to off-heap memory
CN111046007B (zh) * 2018-10-12 2023-08-18 伊姆西Ip控股有限责任公司 管理存储***的方法、装置和计算机程序产品
CN111124254B (zh) * 2018-10-30 2023-09-29 伊姆西Ip控股有限责任公司 调度存储空间回收请求的方法、电子设备和程序产品

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085732A1 (zh) * 2013-12-10 2015-06-18 中兴通讯股份有限公司 终端内存处理方法、装置及终端
CN106201904A (zh) * 2016-06-30 2016-12-07 网易(杭州)网络有限公司 用于内存垃圾回收的方法及装置
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件***的垃圾回收方法
CN109343796A (zh) * 2018-09-21 2019-02-15 新华三技术有限公司 一种数据处理方法和装置
CN110727605A (zh) * 2019-09-27 2020-01-24 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
CN111221475A (zh) * 2020-01-04 2020-06-02 苏州浪潮智能科技有限公司 一种存储空间的管理方法、装置、设备及可读介质
CN111352698A (zh) * 2020-02-25 2020-06-30 北京奇艺世纪科技有限公司 一种jvm参数的调整方法及装置
CN111352593A (zh) * 2020-02-29 2020-06-30 杭州电子科技大学 一种区分快写和正常写的固态硬盘数据写入方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Java虚拟机中内存管理机制研究;徐正超;喻成;;中南民族大学学报(自然科学版)(03);91-95 *
Nicholas Harvey-Lees-Green ; Morteza Biglari-Abhari ; Avinash Malik ; Zoran Salcic.《A Dynamic Memory Management Unit for Real Time Systems》.《2017 IEEE 20th International Symposium on Real-Time Distributed Computing (ISORC)》.2017,2375-5261. *
基于RDD非序列化本地存储的Spark存储性能优化;赵俊先;喻剑;;计算机科学;20190515(05);150-156 *

Also Published As

Publication number Publication date
CN112783656A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN107533551B (zh) 数据块级别的大数据统计
CN102331986B (zh) 一种数据库缓存管理方法及一种数据库服务器
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN110209348B (zh) 数据存储方法、装置、电子设备及存储介质
US7716177B2 (en) Proactive space allocation in a database system
CN110109868B (zh) 用于索引文件的方法、装置和计算机程序产品
US10747665B2 (en) Cost-based garbage collection scheduling in a distributed storage environment
CN105512129A (zh) 一种海量数据检索方法及装置、海量数据存储方法及***
US10642530B2 (en) Global occupancy aggregator for global garbage collection scheduling
CN113486026A (zh) 数据处理方法、装置、设备及介质
CN113722106A (zh) 一种内存管理的方法和装置
CN112783656B (zh) 内存管理方法、介质、装置和计算设备
US20240241640A1 (en) Systems, methods, devices, and media for data processing
CN110287000B (zh) 数据处理方法、装置、电子设备及存储介质
CN114995993A (zh) 内存回收方法以及装置
CN113655968B (zh) 非结构化数据存储方法
CN113742058A (zh) 管理堆外内存的方法和装置
US8095768B2 (en) VSAM smart reorganization
US20190114082A1 (en) Coordination Of Compaction In A Distributed Storage System
CN115618050B (zh) 视频数据存储、分析方法、装置、***、通信设备及存储介质
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
CN114969083A (zh) 一种实时数据分析方法及***
CN108984431B (zh) 用于清空过期缓存的方法和装置
CN114116790A (zh) 数据处理的方法及装置
US11093163B2 (en) Efficient capacity management for a data storage system

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210928

Address after: 310052 Room 408, building 3, No. 399, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Netease Zhiqi Technology Co.,Ltd.

Address before: 310052 Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province, 4, 7 stories

Applicant before: NETEASE (HANGZHOU) NETWORK Co.,Ltd.

GR01 Patent grant
GR01 Patent grant