CN112860592B - 基于链表的数据缓存方法、装置、电子设备和存储介质 - Google Patents
基于链表的数据缓存方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112860592B CN112860592B CN202110126674.6A CN202110126674A CN112860592B CN 112860592 B CN112860592 B CN 112860592B CN 202110126674 A CN202110126674 A CN 202110126674A CN 112860592 B CN112860592 B CN 112860592B
- Authority
- CN
- China
- Prior art keywords
- node
- storage
- linked list
- data
- head
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于链表的数据缓存方法、装置、电子设备和存储介质,基于链表的数据缓存方法包括:接收业务端发送的包含节点号的数据查询请求,响应数据查询请求获取存储的链表的链表头参数,链表头参数包括头存储节点的节点头参数的第一存储地址,每个存储节点的节点头参数的内存空间大小相等;根据节点号和第一存储地址确定节点号对应的目标存储节点的节点头参数的第二存储地址,目标存储节点的节点头参数包括数据存储地址;从第二存储地址所指向的内存空间中读取节点头参数以获得数据存储地址;在数据存储地址所指向的内存空间中读取数据发送到业务端,本发明实施例无需从头存储节点开始遍历每个存储节点,查询数据的效率高。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种基于链表的数据缓存方法、装置、电子设备和存储介质。
背景技术
在数据存储领域常用链表技术来对数据存储进行管理,使用链表进行数据存储管理的特点是插入、删除数据时效率高,插入或删除数据只需要参考相邻存储节点的指针改变。
链表中包括多个存储节点,每个存储节点包括数据域和指针域,每个存储节点的指针域指向该存储节点的下一个存储节点,数据域存储该存储节点的相关参数,例如存储数据的存储地址等参数。目前,查询数据时,需要从链表的头存储节点遍历每个存储节点,在遍历每个存储节点时,根据存储节点的指针域遍历下一个存储节点直到遍历到需要查询的数据,需要从存储节点头一个个遍历查找数据,查询数据的效率低。
发明内容
本发明提供了一种基于链表的数据缓存方法、装置、电子设备和存储介质,以解决现有技术中采用链表管理数据存储时存在查询数据效率低的问题。
第一方面,本发明实施例提供了一种基于链表的数据缓存方法,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述数据缓存方法包括:
接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端
第二方面,本发明实施例提供了一种基于链表的数据缓存装置,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述基于链表的数据缓存装置包括:
数据查询请求接收模块,用于接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
链表头参数获取模块,用于响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
目标存储节点存储地址确定模块,用于根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
数据存储地址读取模块,用于从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
数据读取和发送模块,用于在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。
第三方面,本发明实施例提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面中所述的基于链表的数据缓存方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面中所述的基于链表的数据缓存方法。
本发明实施例提供的基于链表的数据缓存方法,预先存储的链表包括链表头节点和存储节点,链表头节点的链表头参数和存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,链表头参数包括头存储节点的节点头参数的第一存储地址,当接收到业务端发送的、包含目标存储节点的节点号的数据查询请求时,响应该数据查询请求获取链表头参数,并根据节点号和第一存储地址来确定节点号对应的目标存储节点的节点头参数的第二存储地址,从第二存储地址所指向的内存空间中读取节点头参数以获得数据存储地址,在数据存储地址所指向的内存空间中读取数据发送到业务端,实现了根据节点号确定数据对应的存储节点的存储地址,直接从该存储地址所指向的内存空间中读取节点头参数以获得数据存储地址,以在该数据存储地址读取需要查询的数据,无需从头存储节点开始遍历每个存储节点,查询数据的效率高。
附图说明
图1是本发明实施例一提供的一种基于链表的数据缓存方法的步骤流程图;
图2A是本发明实施例二提供的一种基于链表的数据缓存方法的步骤流程图;
图2B是本发明实施例的链表的示意图;
图2C是本发明实施例中存储链表的示意图;
图3是本发明实施例三提供的一种基于链表的数据缓存装置的结构示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的一种基于链表的数据缓存方法的步骤流程图,本发明实施例可适用于通过链表管理数据缓存的情况,该方法可以由本发明实施例中的基于链表的数据缓存装置来执行,该基于链表的数据缓存装置可采用软件和/或硬件的方式实现,并集成于电子设备中,如图1所示,本发明实施例的基于链表的数据缓存方法具体包括如下步骤:
S101、接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号。
本发明实施例可用于进程运行过程中将运行的数据存储在内存缓存中,以及对内存缓存中的数据进行查询、删除操作的场景,其中,进程可以是各个应用程序运行时的进程,进程为本发明实施例中的业务端,例如,业务端可以是电子设备处理图像、视频、音频时所创建的进程,各个进程在运行时将数据存储到内存中,进程在整个生命周期中不断地在内存中存储数据、查询数据和删除数据,由此可以基于链表来对内存中的数据进行操作。
在本发明实施例中,可以在指定内存空间中存储预先生成的链表,该链表包括一个链表头节点和多个存储节点,链表头节点设置有链表头参数,每个存储节点头设置有节点头参数,链表的链表头参数和节点头参数存储在指定内存空间中。
其中,链表头参数可以包括链表的存储节点总数、存储该链表的内存空间的地址、头存储节点的节点头参数的存储地址、尾存储节点的节点头参数的存储地址、已使用存储节点的数量、节点头参数对应的内存空间大小等,节点头参数包括存储节点的使用状态标识、该存储节点对应的数据的数据大小、数据存储地址、鉴权码等。
本发明实施例在响应业务端的链表注册请求生成链表时,在指定内存空间中存储链表的链表头参数和节点头参数,示例性地,可以将指定内存空间划分为多个连续的、大小相等的子内存空间,按照链表中链表头节点、各个存储节点的位置关系将对应的链表头参数和头节点参数依次存储在多个连续的、大小相等的子内存空间中。
在实际应用中,业务端可以是进程,进程需要存储数据时先注册链表,在注册生成链表后向业务端返回一个访问句柄,该访问句柄可以是一个32位无符号整型值(32位操作系统中),该32位无符号整型值相当于一个指针,该指针指向内存中存储链表的链表头参数和节点头参数的内存空间,当业务端需要查询数据时,可以根据该访问句柄生成数据查询请求来访问存储链表的内存空间,并根据该内存空间中的链表头参数和节点头参数来查询数据。
S102、响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址。
本发明实施例在接收到业务端根据访问句柄生成的数据查询请求时,先根据访问句柄确定该访问句柄所指向的内存空间,该内存空间可以是存储链表的链表头参数和节点头参数的内存空间,然后从该内存空间中读取预先存储的链表的链表头参数,该链表头参数包括头存储节点的节点头参数的存储地址、节点头参数对应的内存空间大小、存储节点的总数量等。其中,每个存储节点的节点头参数对应的内存空间大小相等,并且存储链表的内存空间被划分为多个连续的、大小相等的子内存空间,按照链表中链表头节点、各个存储节点的位置关系将链表头参数和头节点参数依次存储在多个连续的、大小相等的子内存空间内。
S103、根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址所述目标存储节点的节点头参数包括数据存储地址。
在本发明实施例中,节点号可以是链表中每个存储节点的序号,节点号根据存储节点在链表中的位置顺序编号,由于是按照链表中链表头节点、各个存储节点的位置关系将链表头参数和头节点参数依次存储在多个连续的、大小相等的子内存空间内,获取到链表头参数后,可以根据链表头参数中的头存储节点的第一存储地址和节点号来计算目标存储节点的节点头参数的第二存储地址,示例性地,链表头参数中包括了节点头参数对应的内存空间大小,该节点头参数的内存空间大小为用于存储每个存储节点的节点头参数的子内存空间大小,可以计算节点号与该节点头参数的内存空间大小的乘积作为偏移值,以第一存储地址为起始地址偏移该偏移值即可以得到节点号对应的目标存储节点的节点头参数的第二存储地址。
S104、从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址。
第二存储地址所指向的内存空间中存储了节点号对应的目标存储节点的节点头参数,该节点头参数中包含了数据存储地址,可以从第二存储地址所指向的内存空间中读取节点头参数,以获得节点头参数中的数据存储地址,该数据存储地址为存储数据的内存空间的地址。
S105、在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。
具体地,在确定数据存储地址后,可以通过该数据存储地址进行寻址,在寻址到该数据存储地址所指向的内存空间后,从该内存空间中读取数据发送到业务端。
本发明实施例提供的基于链表的数据缓存方法,预先存储的链表包括链表头节点和存储节点,链表头节点的链表头参数和存储节点头的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,链表头参数包括头存储节点的节点头参数的第一存储地址,当接收到业务端发送的、包含目标存储节点的节点号的数据查询请求时,响应该数据查询请求获取链表头参数,并根据节点号和第一存储地址来确定节点号对应的目标存储节点的节点头参数的第二存储地址,从第二存储地址所指向的内存空间中读取节点头参数以获得数据存储地址,在数据存储地址所指向的内存空间中读取数据发送到业务端,实现了根据节点号确定数据对应的存储节点的存储地址,直接从该存储地址所指向的内存空间中读取节点头参数以获得数据存储地址,以在该数据存储地址读取需要查询的数据,无需从头存储节点开始遍历每个存储节点,查询数据的效率高。
实施例二
图2A为本发明实施例二提供的一种基于链表的数据缓存方法的步骤流程图,本发明实施例以前述实施例一为基础进行优化,具体地,如图2A所示,本发明实施例的基于链表的数据缓存方法可以包括如下步骤:
S201、接收业务端发送的链表注册请求,所述链表注册请求包括指定内存地址。
当业务端运行过程中需要在内存中存储数据时生成链表注册请求,并发送到基于链表的数据缓存装置,该链表注册请求中包括指定内存地址,本发明实施例的基于链表的数据缓存装置可以接收到该链表注册请求。
可选地,链表注册请求中还包括数据结构体信息,该数据结构体信息包括数据类型、数据结构体大小等信息,可以根据不同的数据结构类型注册不同的链表,同一链表中存储节点对应存储的数据的数据类型相同,从而提高基于链表管理数据缓存的通用性。
S202、响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,所述链表包括链表头节点和存储节点,所述链表头节点包括链表头参数,所述存储节点包括节点头参数。
在本发明的一个可选实施例中,基于链表的数据缓存装置接收到业务端发送的链表注册请求后,可以生成包含链表头节点和预设数量个存储节点的链表,并根据链表注册请求中的数据结构体信息和指定内存地址初始化链表头的链表头参数和节点头参数,在指定内存地址所指向的内存空间中依次存储链表头参数和节点头参数,其中,每个存储节点的节点头参数对应的内存空间大小相等。
如图2B所示,在一个示例中,链表头节点的链表头参数包括存储节点总数、已使用存储节点数、当前访问节点号、节点头参数对应的内存空间大小、头节点地址、尾节点地址和链表存储地址,其中,链表存储地址可以是链表注册请求中的指定内存地址,存储节点总数可以是链表中所包含的最大存储节点的数量,该最大存储节点的数量可以是一个固定值,节点头参数对应的内存空间大小可以是为每个存储节点分配的用于存储节点头参数的内存空间大小,头节点地址和尾节点地址分别是头存储节点的节点头参数和尾存储节点的节点头参数的存储地址,在注册生成链表时,可以初始化链表存储地址为链表注册请求中的指定内存地址,存储节点总数等于预设数量,当前访问节点号为0,已使用存储节点数为0,节点头参数的内存空间大小等于注册时结构体的大小,头节点地址等于头存储节点的节点参数的存储地址。
在本发明的优选实施例中,指定内存地址可以是注册链表时用于存储生成的链表的静态内存空间的地址,即注册链表时为链表分配静态内存空间,该静态内存空间的地址为指定内存地址,该静态内存空间用来存储链表的链表头参数和节点头参数,可以减少动态分配内存空间来存储链表造成内存碎片多的问题,减少了内存碎片,提高了内存利用率。
如图2B所示,节点头参数包括状态标识、鉴权码、存储数据的大小和数据存储地址,其中,状态标识可以标识该存储节点是否已被使用,鉴权码在存储节点被使用时随机生成,鉴权码用于对业务端的访问鉴权,存储数据的大小可以是该存储节点对应的数据的大小,数据存储地址可以是存储数据的内存地址,在注册生成链表时,可以初始化存储节点的状态标识为未使用标识,节点存储数据的大小和数据存储地址为空,以表示该存储节点未被使用。
在一个示例中,链表注册请求中包括如下数据结构体和指定内存地址,数据结构体:
typedef struct xagSlist{
Int s32DataSize;
char*pszData;
}XAG_SLIST
静态内存空间地址:static char szBuffer[100000]。
可以将szBuffer[100000]赋值给链表头参数中的链表存储地址,将s32DataSize赋值给链表头参数中的节点头参数的内存空间大小,即每个存储节点用于存储节点头参数的内存空间大小相等。
如图2C所示,在一个示例中,存储链表的静态内存空间的地址可以是00000000-0000000n,将该静态内存空间划分为多个子内存空间,每个子内存空间的大小相等,优选地,每个子内存空间的大小等于数据结构体大小,即链表头参数中的节点头参数的内存空间大小,每个子内存空间用于存储存储节点的节点头参数,可以按照链表头节点和存储节点在链表中的位置,依次将链表头参数、节点头参数依次存储在连续的子内存空间中,如图2C所示,地址为00000000的子内存空间用于存储链表头参数,地址为00000001的子内存空间用于存储头存储节点的节点头参数,地址为0000000n的子内存空间用于存储存储节点n的节点头参数。
S203、向所述业务端返回访问句柄,所述业务端用于根据所述访问句柄访问所述指定内存地址所指向的内存空间以对所述链表进行操作。
本发明实施例的基于链表的数据缓存装置响应业务端的链表注册请求生成链表,并将链表存储在指定内存地址所指向的内存空间后,向业务端返回访问句柄,该访问句柄可以是一个无符号整型值,该无符号整型值相当于一个指针,该指针指向内存中存储链表的链表头参数和节点头参数的内存空间,业务端需要在内存中存储数据、查询数据、删除数据时,可以通过该访问句柄来对链表操作。
S204、当接到业务端发送的插入存储节点操作请求时,从所述链表头参数中获取已使用存储节点数,所述插入存储节点操作请求包括数据的数据大小以及数据的目标存储地址。
本发明实施例在生成链表时,每个存储节点处于未使用状态,当业务端需要将数据存储到内存中时,可以将数据所占用的内存空间大小、数据的目标存储地址记录到链表的存储节点的节点头参数中,以通过链表来对内存中的数据进行管理。可选地,业务端可以生成包括数据大小和目标存储地址的插入存储节点操作请求,通过链表访问句柄来访问存储链表的内存空间,从该内存空间中读取到链表的链表头参数,从链表头参数中获取已使用存储节点数,并判断已使用存储节点数是否小于存储节点总数,若是,执行S205,若否,则确定无法在该链表中插头存储节点。
S205、在所述已使用存储节点数小于所述存储节点总数时,响应所述插入存储节点操作请求插入存储节点。
可选地,如果已使用存储节点数小于存储节点总数,说明该链表中有空闲存储节点,可以从空闲存储节点中确定出一个空闲存储节点作为目标存储节点,将目标存储节点的节点头参数中的状态标识设置为已使用标识、节点存储数据的大小设置为数据大小、数据存储地址设置为目标存储地址以及随机生成鉴权码,同时将链表头参数中的已使用存储节点数累加1。
在一个示例中,当空闲存储节点为头存储节点时,可以将头存储节点的状态标识设置为已使用标识、节点存储数据的大小设置为数据大小、数据存储地址设置为目标存储地址,从而实现链表头插入存储节点;当空闲存储节点为尾存储节点时,可以将尾存储节点的状态标识设置为已使用标识、节点存储数据的大小设置为数据大小、数据存储地址设置为目标存储地址,从而实现链表尾插入存储节点;当空闲存储节点为中间存储节点时,可以将中间存储节点的状态标识设置为已使用标识、节点存储数据的大小设置为数据大小、数据存储地址设置为目标存储地址,从而实现链表链表中间插入存储节点。本领域技术人员可以设置从链表头、链表中、链表尾插入存储节点,本发明实施例对此不加以限制。
优选地,存储数据时,存储数据的内存空间可以为静态分配的内存空间,也可以是动态分配的内存空间,当为动态分配的内存空间时遵循字节对齐原则以避免存在内存碎片,提高内存利用率。
S206、接收业务端发送的数据查询请求,所述数据查询请求为所述业务端根据链表的访问句柄所生成的请求,所述数据查询请求包括目标存储节点对应的节点号。
本发明实施例的数据查询可以是指读取内存中的某条数据,业务端可以通过链表来查询数据,具体而言,业务端可以通过链表获取数据的存储地址,从存储地址所指向的内存空间中读取数据,业务端在生成数据查询请求时,可以生成包含目标存储节点对应的节点号的数据查询请求,并根据访问句柄访问对应的链表,从链表中年获取到数据存储地址。
S207、响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址。
业务端可以根据访问句柄访问存储链表的内存空间,从该内存空间中读取到链表头参数,该链表头参数包括头存储节点的节点头参数的第一存储地址,如图2B和2C所示,链表头参数包括节点头参数的内存空间大小和头节点地址,其中,头节点地址为头存储节点的节点头参数的第一存储地址。如图2C所示,头存储节点的头节点参数的存储地址为00000001,节点头参数的内存空间大小为1。
S208、计算所述节点号与预设节点头参数的内存空间大小的乘积作为偏移值,所述节点头参数的内存空间大小是用于存储节点头参数的内存空间大小。
如图2B和图2C所示,假设头存储节点的头节点参数的存储地址为00000001,节点头参数的内存空间大小等于1,如果数据查询请求中的节点号为5,则可以计算偏移值为5×1=5。
S209、以所述第一存储地址为起始地址偏移所述偏移值,得到所述节点号对应的目标存储节点的节点头参数的第二存储地址。
如图2C所示,示例性地,第一存储地址为00000001,偏移值为5,则节点号对应的目标存储节点的节点头参数的第二存储地址为00000005。
S210、从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址。
在确定目标存储节点的节点头参数的第二存储地址后,可以从第二存储地址所指向的内存空间中读取目标存储节点的节点头参数,该节点头参数包括状态标识、鉴权码、数据存储地址等。
在本发明的一个可选实施例中,数据查询请求中还包括鉴权码,在读取节点头参数之前,还包括获取目标存储节点的预设鉴权码,判断数据查询请求中的鉴权码与预设鉴权码是否相同;若是则从第二存储地址存储的节点头参数中读取数据存储地址,若否返回错误信息到业务端。通过鉴权码比对,可以确定业务端是否有权限读取该存储节点对应的数据,保证了数据安全。
S211、在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。
在本发明实施例中,节点头参数中的数据存储地址可以是存储数据时,存储数据的内存空间的地址,基于链表的数据缓存装置可以从该数据存储地址所指向的内存空间中读取数据,并将读取到的数据发送到业务端。
S212、当接到业务端发送的删除存储节点操作请求时,删除存储节点。
本发明实施例可以删除链表中的存储节点,其中,删除存储节点是指存储节点对应的数据删除后,更新该存储节点的节点头参数和链表头参数,以从链表头和链表尾删除存储节点为示例,当接到业务端发送的删除存储节点操作请求时,从链表头参数中获取头存储节点或者尾存储节点的存储地址;更新头存储节点或者尾存储节点的存储地址中的节点头参数,将链表头参数中的已使用存储节点数减1。当然,也可以删除链表中间的存储节点。
如图2B所示,当一个存储节点对应的数据从内存中删除时,可以将该存储节点的节点头参数中的状态标识设置为未使用标识,鉴权码、存储数据的大小和数据存储地址设置为空,将链表头参数中的以使用存储节点数累加1。
本发明实施例提供的基于链表的数据缓存方法,预先存储的链表包括链表头节点和存储节点,链表头节点的链表头参数和存储节点头的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数的内存空间大小相等,链表头参数包括头存储节点的节点头参数的第一存储地址,当接收到业务端发送的、包含目标存储节点的节点号的数据查询请求时,计算节点号与预设节点头参数的内存空间大小的乘积作为偏移值,以第一存储地址为起始地址偏移该偏移值得到节点号对应的目标存储节点的节点头参数的第二存储地址,从第二存储地址所指向的内存空间中读取目标存储节点的节点头参数以获得数据存储地址,在数据存储地址所指向的内存空间中读取数据发送到业务端,实现了根据节点号确定数据对应的存储节点的存储地址,直接从该存储地址所指向的内存空间中读取节点头参数以获得数据存储地址,以在该数据存储地址读取需要查询的数据,无需从头存储节点开始遍历每个存储节点,查询数据的效率高。
进一步地,链表存储存储使用静态分配的内存空间,数据存储使用动态分配的内存空间并遵循字节对齐原则,内存碎片少,提高了内存利用率。
更进一步地,在注册链表时可以根据不同数据类型注册不同的链表来存储数据,通用性强。
实施例三
图3为本发明实施例三提供的一种基于链表的数据缓存装置的结构示意图,本发明实施例的链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,如图3所示,本发明实施例的基于链表的数据缓存装置包括:
数据查询请求接收模块301,接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
链表头参数获取模块302,用于响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
目标存储节点存储地址确定模块303,用于根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
数据存储地址读取模块304,用于从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
数据读取和发送模块305,用于在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。
可选地,所述目标存储节点存储地址确定模块303包括:
偏移值确定子模块,用于计算所述节点号与预设节点头参数的内存空间大小的乘积作为偏移值,所述预设节点头参数的内存空间大小是用于存储节点头参数的内存空间大小;
地址偏移子模块,用于以所述第一存储地址为起始地址偏移所述偏移值,得到所述目标存储节点的节点头参数的第二存储地址。
可选地,所述数据查询请求还包括鉴权码,在数据存储地址读取模块304之前还包括:
鉴权码获取模块,用于获取所述目标存储节点的预设鉴权码;
鉴权码判断模块,用于判断所述数据查询请求中的鉴权码与所述预设鉴权码是否相同;
第一鉴权码确定模块,用于所述鉴权码判断模块判断所述数据查询请求中的鉴权码与所述预设鉴权码相同时执行数据存储地址读取模块304;
第二鉴权码确定模块,用于所述鉴权码判断模块判断所述数据查询请求中的鉴权码与所述预设鉴权码不相同时返回错误信息到业务端。
可选地,在数据查询请求接收模块301还包括:
链表注册请求接收模块,用于接收业务端发送的链表注册请求,所述链表注册请求包括指定内存地址;
链表生成模块,用于响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,所述链表包括链表头节点和存储节点,所述链表头节点包括链表头参数,所述存储节点包括节点头参数;
句柄返回模块,用于向所述业务端返回访问句柄,所述业务端用于根据所述访问句柄访问所述指定内存地址所指向的内存空间以对所述链表进行操作。
可选地,所述链表注册请求还包括数据结构体信息,所述链表生成模块包括:
链表生成子模块,用于生成包含链表头和预设数量个存储节点的链表;
链表初始化子模块,用于根据所述数据结构体信息和所述指定内存地址初始化所述链表头的链表头参数和所述存储节点的节点头参数;
链表存储子模块,用于在所述指定内存地址所指向的内存空间中依次存储链表头参数和节点头参数,其中,每个节点头参数的节点头参数的内存空间大小相等。
可选地,所述指定内存所指向的内存空间为静态分配的内存空间。
可选地,所述数据结构体信息包括数据结构体大小,所述链表初始化子模块包括:
链表头参数初始化单元,用于初始化所述链表头的链表头参数,所述链表头参数包括链表存储地址、存储节点总数、当前访问节点号、节点头参数的内存空间大小、已使用存储节点数以及头节点地址,其中,所述链表存储地址为所述指定内存地址,所述存储节点总数等于所述预设数量,所述当前访问节点号为0,所述已使用存储节点数为0,所述节点头参数的内存空间大小等于所述数据结构体大小、所述头节点地址等于头存储节点的节点头参数的存储地址;
节点头参数初始化单元,用于初始化所述存储节点的节点头参数,所述节点头参数包括状态标识、存储数据的大小、数据存储地址,其中,所述状态标识设置为未使用标识,所述节点存储数据的大小和所述数据存储地址设置为空。
可选地,在数据查询请求接收模块301还包括:
已使用存储节点数获取模块,用于当接到业务端发送的插入存储节点操作请求时,从所述链表头参数中获取已使用存储节点数,所述插入存储节点操作请求包括数据的数据大小以及数据的目标存储地址;
存储节点插入模块,用于在所述已使用存储节点数小于所述存储节点总数时,响应所述插入存储节点操作请求插入存储节点;
其中,所述目标存储地址为动态分配的、用于存储所述数据的内存空间的地址。
可选地,所述存储节点插入模块包括:
目标存储节点确定子模块,用于确定未使用的目标存储节点;
节点头参数设置子模块,用于将所述目标存储节点的节点头参数中的状态标识设置为已使用标识、节点存储数据的大小设置为所述数据的数据大小、数据存储地址设置为所述目标存储地址;
链表头参数设置模块,用于将所述链表头参数中的已使用存储节点数累加1。
可选地,在数据查询请求接收模块301之前还包括:
存储节点删除模块,用于当接到业务端发送的删除存储节点操作请求时,删除存储节点。
可选地,所述存储节点删除模块包括:
存储地址获取子模块,用于当接到业务端发送的删除存储节点操作请求时,从所述链表头参数中获取头存储节点或者尾存储节点的存储地址;
节点头参数更新子模块,用于更新所述头存储节点或者尾存储节点的存储地址中的节点头参数;
链表头参数更新子模块,用于将所述链表头参数中的已使用存储节点数减1。
上述基于链表的数据缓存装置可执行本发明任意实施例一或实施例二所提供的基于链表的数据缓存方法,具备执行方法相应的功能模块和有益效果。
实施例四
本发明实施例四提供一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任一实施例所述的基于链表的数据缓存方法。
实施例五
本发明实施例五提供一种计算机可读存储介质,所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述方法实施例所述的基于链表的数据缓存方法。
需要说明的是,对于装置、电子设备和存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的基于链表的数据缓存方法。
值得注意的是,上述基于链表的数据缓存装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (13)
1.一种基于链表的数据缓存方法,其特征在于,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述基于链表的数据缓存方法包括:
接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端;
所述根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,包括:
计算所述节点号与预设节点头参数的内存空间大小的乘积作为偏移值,所述预设节点头参数内存空间大小是用于存储节点头参数的内存空间大小;
以所述第一存储地址为起始地址偏移所述偏移值,得到所述目标存储节点的节点头参数的第二存储地址。
2.根据权利要求1所述的基于链表的数据缓存方法,其特征在于,所述数据查询请求还包括鉴权码,在从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址之前,还包括:
获取所述目标存储节点的预设鉴权码;
判断所述数据查询请求中的鉴权码与所述预设鉴权码是否相同;
若是,执行从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址的步骤;
若否,则返回错误信息到所述业务端。
3.根据权利要求1-2任一项所述的基于链表的数据缓存方法,其特征在于,在接收业务端发送的数据查询请求之前,还包括:
接收业务端发送的链表注册请求,所述链表注册请求包括指定内存地址;
响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,所述链表包括链表头节点和存储节点,所述链表头节点包括链表头参数,所述存储节点包括节点头参数;
向所述业务端返回访问句柄,所述业务端用于根据所述访问句柄访问所述指定内存地址所指向的内存空间以对所述链表进行操作。
4.根据权利要求3所述的基于链表的数据缓存方法,其特征在于,所述链表注册请求还包括数据结构体信息,所述响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,包括:
生成包含链表头和预设数量个存储节点的链表;
根据所述数据结构体信息和所述指定内存地址初始化所述链表头参数和所述节点头参数;
在所述指定内存地址所指向的内存空间中依次存储链表头参数和节点头参数,其中,每个节点头参数的内存空间大小相等。
5.根据权利要求3所述的基于链表的数据缓存方法,其特征在于,所述指定内存所指向的内存空间为静态分配的内存空间。
6.根据权利要求4所述的基于链表的数据缓存方法,其特征在于,所述数据结构体信息包括数据结构体大小,所述根据所述数据结构体信息和所述指定内存地址初始化所述链表头参数和所述节点头参数,包括:
初始化所述链表头的链表头参数,所述链表头参数包括链表存储地址、存储节点总数、当前访问节点号、节点头参数内存空间大小、已使用存储节点数以及头节点地址,其中,所述链表存储地址为所述指定内存地址,所述存储节点总数等于所述预设数量,所述当前访问节点号为0,所述已使用存储节点数为0,所述节点头参数内存空间大小等于所述数据结构体大小、所述头节点地址等于头存储节点的节点头参数的存储地址;
初始化所述存储节点的节点头参数,所述节点头参数包括状态标识、存储数据的大小、数据存储地址,其中,所述状态标识设置为未使用标识,存储数据的大小和所述数据存储地址设置为空。
7.根据权利要求3所述的基于链表的数据缓存方法,其特征在于,在接收业务端发送的数据查询请求之前,还包括:
当接到业务端发送的插入存储节点操作请求时,从所述链表头参数中获取已使用存储节点数,所述插入存储节点操作请求包括数据的数据大小以及数据的目标存储地址;
在所述已使用存储节点数小于所述存储节点总数时,响应所述插入存储节点操作请求插入存储节点;
其中,所述目标存储地址为动态分配的、用于存储所述数据的内存空间的地址。
8.根据权利要求7所述的基于链表的数据缓存方法,其特征在于,所述在所述已使用存储节点数小于所述存储节点总数时,响应所述插入存储节点操作请求插入存储节点,包括:
确定未使用的目标存储节点;
将所述目标存储节点的节点头参数中的状态标识设置为已使用标识、节点存储数据的大小设置为所述数据的数据大小、数据存储地址设置为所述目标存储地址;
将所述链表头参数中的已使用存储节点数累加1。
9.根据权利要求3所述的基于链表的数据缓存方法,其特征在于,所述在接收业务端发送的数据查询请求之前,还包括:
当接到业务端发送的删除存储节点操作请求时,删除存储节点。
10.根据权利要求9所述的基于链表的数据缓存方法,其特征在于,所述当接到业务端发送的删除存储节点操作请求时,删除存储节点,包括:
当接到业务端发送的删除存储节点操作请求时,从所述链表头参数中获取头存储节点或者尾存储节点的存储地址;
更新所述头存储节点或者尾存储节点的存储地址中的节点头参数;
将所述链表头参数中的已使用存储节点数减1。
11.一种基于链表的数据缓存装置,其特征在于,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述基于链表的数据缓存装置包括:
数据查询请求接收模块,用于接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
链表头参数获取模块,用于响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
目标存储节点存储地址确定模块,用于根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
数据存储地址读取模块,用于从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
数据读取和发送模块,用于在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端;
其中,所述目标存储节点存储地址确定模块包括:
偏移值确定子模块,用于计算所述节点号与预设节点头参数的内存空间大小的乘积作为偏移值,所述预设节点头参数的内存空间大小是用于存储节点头参数的内存空间大小;
地址偏移子模块,用于以所述第一存储地址为起始地址偏移所述偏移值,得到所述目标存储节点的节点头参数的第二存储地址。
12.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的基于链表的数据缓存方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的基于链表的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110126674.6A CN112860592B (zh) | 2021-01-29 | 2021-01-29 | 基于链表的数据缓存方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110126674.6A CN112860592B (zh) | 2021-01-29 | 2021-01-29 | 基于链表的数据缓存方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860592A CN112860592A (zh) | 2021-05-28 |
CN112860592B true CN112860592B (zh) | 2023-07-18 |
Family
ID=75986845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110126674.6A Active CN112860592B (zh) | 2021-01-29 | 2021-01-29 | 基于链表的数据缓存方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860592B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002241B (zh) * | 2022-05-06 | 2024-02-20 | 成都申威科技有限责任公司 | 一种智能仪器的操控方法、系统、电子设备及其介质 |
CN114942942A (zh) * | 2022-05-18 | 2022-08-26 | 马上消费金融股份有限公司 | 特征数据的查询及其用户注册查询方法和装置 |
CN115794838B (zh) * | 2023-02-07 | 2023-05-26 | 深圳开源互联网安全技术有限公司 | 双向链表的存储方法、装置、终端设备及存储介质 |
CN117349483B (zh) * | 2023-12-05 | 2024-04-09 | 杭州行芯科技有限公司 | 一种寄生参数的查找方法、装置、电子设备及存储介质 |
CN117539636A (zh) * | 2023-12-06 | 2024-02-09 | 摩尔线程智能科技(北京)有限责任公司 | 总线模块的内存管理方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489811B1 (en) * | 2006-12-29 | 2013-07-16 | Netapp, Inc. | System and method for addressing data containers using data set identifiers |
CN105243030A (zh) * | 2015-10-26 | 2016-01-13 | 北京锐安科技有限公司 | 一种数据缓存方法 |
CN110674170A (zh) * | 2019-09-05 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 基于链表逆序读取的数据缓存方法、装置、设备及介质 |
CN111475474A (zh) * | 2020-04-27 | 2020-07-31 | 东方通信股份有限公司 | 一种视频文件缓存处理模块及处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471508B1 (en) * | 2015-04-09 | 2016-10-18 | International Business Machines Corporation | Maintaining command order of address translation cache misses and subsequent hits |
-
2021
- 2021-01-29 CN CN202110126674.6A patent/CN112860592B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489811B1 (en) * | 2006-12-29 | 2013-07-16 | Netapp, Inc. | System and method for addressing data containers using data set identifiers |
CN105243030A (zh) * | 2015-10-26 | 2016-01-13 | 北京锐安科技有限公司 | 一种数据缓存方法 |
CN110674170A (zh) * | 2019-09-05 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 基于链表逆序读取的数据缓存方法、装置、设备及介质 |
CN111475474A (zh) * | 2020-04-27 | 2020-07-31 | 东方通信股份有限公司 | 一种视频文件缓存处理模块及处理方法 |
Non-Patent Citations (1)
Title |
---|
HashMap优化及其在列存储数据库查询中的应用;母红芬 等;计算机科学与探索(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112860592A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860592B (zh) | 基于链表的数据缓存方法、装置、电子设备和存储介质 | |
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
CN110321325B (zh) | 文件索引节点查找方法、终端、服务器、系统及存储介质 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN106844676B (zh) | 数据存储方法及装置 | |
CN112817538B (zh) | 数据处理的方法、装置、设备和存储介质 | |
CN110765076A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
US9292549B2 (en) | Method and system for index serialization | |
CN109460406B (zh) | 一种数据处理方法及装置 | |
CN113268439A (zh) | 内存地址的查找方法和装置、电子设备和存储介质 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN114064312A (zh) | 一种数据处理系统及模型训练方法 | |
CN117435912A (zh) | 基于网络数据包属性值长短特征的数据包索引与检索方法 | |
CN110166318B (zh) | 一种数据统计方法及装置 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN112380004B (zh) | 内存管理方法、装置、计算机可读存储介质及电子设备 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
US20100169322A1 (en) | Efficient access of bitmap array with huge usage variance along linear fashion, using pointers | |
CN107545026B (zh) | 一种接口名字解析树功能的实现方法和装置 | |
CN113905252A (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
CN113806389A (zh) | 一种数据处理方法、装置、计算设备与存储介质 | |
JP3801176B2 (ja) | メモリ制御方法、記憶装置、制御プログラムおよび可読記録媒体 | |
CN117971711A (zh) | 一种多级页表遍历方法、装置、电子设备及存储介质 | |
CN110209679B (zh) | 一种用于提升访问效率的数据存储方法、终端设备 | |
CN114116368A (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 |