CN107451054A - 一种用于linux环境中的内存池调试方法 - Google Patents
一种用于linux环境中的内存池调试方法 Download PDFInfo
- Publication number
- CN107451054A CN107451054A CN201710617729.7A CN201710617729A CN107451054A CN 107451054 A CN107451054 A CN 107451054A CN 201710617729 A CN201710617729 A CN 201710617729A CN 107451054 A CN107451054 A CN 107451054A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- pool
- address
- memory pool
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/366—Debugging of software using diagnostics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于linux环境中的内存池调试方法,用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息,包括在程序启动时,将进程的虚拟地址映射表输出到一个文件里保存;之后创建和初始化内存池,每个内存块都有一个管理结构用于内存池对内存块进行管理,申请内存时,从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时,将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址;出现问题时,将存储的函数调用栈地址转换成代码位置。本发明可以快速精确定位内存使用不当例如重复释放和内存泄漏的问题,直接定位到代码位置。
Description
技术领域
本发明涉及一种基于Linux系统的内存池的调试方法,可用于调试内存泄漏,内存double free(重复释放)等内存使用不当相关的bug(错误)。
背景技术
在大型程序中,由于代码量很大和逻辑复杂,如果动态申请的内存是直接使用系统接口,那么出现了内存泄漏或者double free(重复释放)会非常难于排查,通常排查此类问题的方法包括:
1.阅读代码,效率低,方法不系统,依赖于解决bug的人的能力和灵感;
2.在代码中增加log(打印),需要重新复现问题,效率低。
3.使用valgrind等类似的开源工具,需要重新编译和复现问题,不能通过出现问题的现场直接定位问题。
这些方法效率都很低,且不能通过出现问题的场景直接定位问题,需要重新复现问题才能排查,不适合在商业产品中使用。
发明内容
针对现有技术缺陷,本发明提供了一种新的用于linux环境中使用内存池来快速定位内存使用不当的bug的方法。
本发明的技术方案提出一种用于linux环境中的内存池调试方法,用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息,实现方式如下,
在程序启动时,将进程的虚拟地址映射表输出到一个文件里保存,用于函数调用栈地址和代码位置的转换;
之后创建和初始化内存池,内存池里的内存按业务需求分成不同大小的内存块,每个内存块都有一个管理结构用于内存池对内存块进行管理,管理结构对用户不可见;内存块的管理结构内有链表结构,用于将同类型的同状态内存块连接起来,大小相同的状态相同的内存块在一个链表中;
申请内存时,从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时,将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址;
出现问题时,将存储的函数调用栈地址转换成代码位置,支持直接定位bug出现的代码位置。
而且,内存块的管理结构内有标记表明此内存块是inuse或free的状态,如果对一个free的内存块进行释放操作,就是double free状态;inuse表示被申请状态,free表示空闲未被申请的状态,double free表示重复释放状态。
而且,申请内存时是从对应大小的空闲内存块链表free list里取一个内存块返回给用户使用,同时放置到对应大小的被分配内存块链表inuse list中。
而且,内存池里的内存块被创建出来后,不能被销毁,内存的申请和释放只是将内存块在内存池的不同链表间转换,支持保留内存块管理结构内存储的debug信息。
而且,记录函数调用栈地址是调用__builtin_return_address(n),此调用返回一个int的整数,作为栈地址存储到内存块的管理结构中;其中n表示栈的层数,调用__builtin_return_address(n)表示返回第n层的栈地址。
而且,将函数调用栈地址还原为代码位置是使用linux的工具addr2line和之前记录的虚拟地址映射表。
本发明所提供方法可以直接检测出double free的内存申请和2次释放的代码位置,精确定位问题;对于内存泄漏,遍历内存块的inuse list,计算出每个内存块的申请的代码位置,结合代码可以直接查出内存泄漏点。该方法能在linux系统中实现快速定位double free和内存泄漏的bug。
本发明对比已有技术有以下创新点:
1、使用内存池来管理内存,在内存块中标记状态,以及将状态相同的同级别的内存块放到同一个链表中,可以快速的定位double free和内存泄漏的bug。
2、进一步地,在申请和释放内存时通过linux系统调用__builtin_return_address获取函数栈地址并存储到内存块中,出现问题时再通过addr2line命令将存储的函数栈地址转换成代码行数,可以直接定位bug出现的代码位置。
本发明技术方案将在大型linux服务程序中发挥重要作用,具有重大的市场价值。
附图说明
图1为本发明实施例的流程图。
具体实施方式
以下结合附图和实施例详细说明本发明技术方案,提供了对该实施例的全面理解的详细细节。
本发明提出一种新的用于linux环境中使用内存池来快速定位内存使用不当的bug的方法,包括利用内存池技术和linux技术:
使用内存池来管理动态申请的内存。内存池是指预先申请大量的内存,分割成一定大小的内存块,然后将这些内存块用数据结构管理起来;应用程序申请内存时,从内存池中取合适大小的内存块返回给应用程序;应用程序释放内存时,将释放的内存块归还到内存池内。内存池中的内存块并不真正的释放,只是标记成free(未使用),这样可以在内存块里存储一些debug(调试)信息,方便出现bug后定位问题。
Linux系统可以将当前运行的函数调用栈的代码位置和一个int(整数)型的值相互转换。通过调用__builtin_return_address(系统调用)可以将函数调用栈的当前代码位置转换成一个整数,__builtin_return_address(n)表示将第n层栈的代码位置转换成整数;通过addr2line程序可以将一个整数转换成代码位置。
本发明基于内存池技术和linux技术的特点,实现支持快速定位内存使用不当的bug的调试方法,主要改进为:用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息。在程序启动时将进程的虚拟地址映射表输出到一个文件里保存,用于函数调用栈地址和代码位置(行数)的转换,进程的虚拟地址映射表是/proc/pid/maps(pid是进程id)。之后创建和初始化内存池,内存池里的内存按业务需求分成不同大小的内存块,每个内存块都有一个管理结构用于内存池对内存块进行管理,管理结构对用户不可见。之后申请内存时从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址。
进一步地,内存块的管理结构内有标记表明此内存块是inuse(被申请)或free(空闲,未被申请)的状态,这样如果对一个free的内存块进行释放操作,就是double free(重复释放)。
进一步地,内存块的管理结构内有链表结构,用于将同类型的同状态内存块连接起来。大小相同的状态相同的内存块在一个链表中,申请内存时是从对应大小的free list(空闲内存块链表)里取一个内存块返回给用户使用,同时放置到对应大小的inuse list(被分配内存块链表)中。当某级别的内存块free list为空时,就有可能发生了内存泄漏。
进一步地,内存池里的内存块被创建出来后,不能被销毁。内存的申请和释放只是将内存块在内存池的不同链表间转换,这样内存块管理结构内存储的debug信息才可以保留下来。
记录函数调用栈地址是调用__builtin_return_address(n),此调用返回一个int的整数,作为栈地址存储到内存块的管理结构中。n表示栈的层数,调用__builtin_return_address(n)表示返回第n层的栈地址。
将函数调用栈地址还原为代码位置(行数)是使用linux的工具addr2line和之前记录的虚拟地址映射表。虚拟地址映射表记录程序的虚拟地址空间,其中有so文件和可执行文件的地址范围。首先,根据栈地址在内存地址映射表里确定其所对应的文件,然后算出栈地址在文件里的偏移,之后调用命令"addr2line-e文件名地址偏移"(addr2line是系统命令)即可换算出栈地址对应的代码行数。
参见图1,本发明实施例可以分为3个阶段,程序启动阶段,运行阶段和出现问题后的调试阶段。
在启动阶段,需要保存虚拟地址映射表,初始化内存池。
运行阶段,内存申请,释放都要记录对应的函数调用栈地址,同时检测是否出现bug,在double free时终止程序;在内存池耗尽时给出报警。
调试阶段,根据记录的栈地址计算出对应的代码位置,精确定位问题。
为了便于实施参考起见,提供实施例中各操作具体说明如下:
启动阶段
1.将程序的虚拟地址映射表保存到一个文件里。包括下列子步骤,
步骤1.1,调用系统函数getpid()获取进程的pid(进程id);
步骤1.2,进程pid是一个整型数字,假定进程pid是整数xxxx,进程的虚拟地址映射表就是/proc/xxxx/maps,通过调用命令cat/proc/xxxx/maps>文件名,将虚拟地址映射表保存到指定的文件内。
2.初始化内存池。包括下列子步骤,
步骤2.1,向系统申请一大块连续的内存,实施例申请256M内存用来初始化内存池;
步骤2.2,根据业务实际需求,将申请到的大块内存分割成大小不等的小内存块,例如可以将256M的内存分成55000个32字节内存块、25000个64字节内存块、25000个128字节的内存块、30000个512字节内存块和80000个1024字节内存块;每个内存块都有个头部做为内存块的管理结构,管理结构中至少有下列字段:
标记内存状态的flag(标记);
内存块的size(大小);
链表指针;
存储申请内存时函数调用栈地址的变量;
存储释放内存时函数调用栈地址的变量;
步骤2.3,对每一个内存块:初始化管理结构,标记为free,将内存块加入到对应大小的free list里。
运行阶段
1.程序运行过程中,向内存池申请的内存按下列步骤处理:
步骤3.1,根据要申请的内存size决定返回的内存块的size。内存块的size是内存池里比要申请的内存size大的最小size;
步骤3.2,检查内存池里对应size的内存块的free list,如果为空,说明此级别的内存块耗尽,可能出现了内存泄漏,告警,然后返回NULL给申请者;如果不为空,从中取一个内存块,从free list里移出;
步骤3.3,调用__builtin_return_address(n)获取函数调用栈地址,n为栈的层数,记录的栈层数越多,越利于调试。实际记录的栈层数要平衡空间和调试需要,假定记录2层,则是将__builtin_return_address(0)和__builtin_return_address(1)存储到内存块的申请时函数调用栈地址变量内;
步骤3.4,标记内存块状态为inuse状态,将内存块放置到对应大小级别的inuselist里,返回内存块给申请者。
2.释放内存,按下列步骤处理:
步骤4.1,检查要释放的内存块的flag,如果是空闲状态,则说明发生了doublefree,需要终止程序,可以通过assert(0)让程序core出来,留下问题现场;
步骤4.2,将内存块从inuse list中移除;
步骤4.3,获取此时函数调用栈地址,和步骤3.3的方法一样,存储到内存块的释放时函数调用栈地址变量内;
步骤4.4,标记内存块状态为free,将内存块放置到对应大小级别的free list中。
调试阶段
1.首先确定出现问题的内存块。对于double free,就是正在double free的内存块;对于内存泄漏,遍历内存耗尽的内存块级别的inuse list,检查内存块的申请时的函数栈地址,若其中有函数栈地址大量重复,就可能是内存泄漏点。
2.将内存块中的函数栈地址转换为代码位置,按下列步骤处理:
步骤5.1,在程序的虚拟地址映射表文件中,查找函数栈地址对应的文件。虚拟地址映射表里有程序启动加载的二进制文件的地址范围,函数栈地址所在的地址范围对应的文件就是此函数栈地址对应的代码所在的文件。
步骤5.2,用函数栈地址减去文件的首地址得到函数栈地址在文件里地址偏移。
步骤5.3,执行addrline-e文件名地址偏移将函数栈地址转换为代码位置。
通过上述操作我们可以快速的发现double free和内存泄漏问题,并直接精确定位出现问题的代码位置。
具体实施时,本发明所提供方法可采用软件技术实现自动运行。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (7)
1.一种用于linux环境中的内存池调试方法,其特征在于:用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息,实现方式如下,
在程序启动时,将进程的虚拟地址映射表输出到一个文件里保存,用于函数调用栈地址和代码位置的转换;
之后创建和初始化内存池,内存池里的内存按业务需求分成不同大小的内存块,每个内存块都有一个管理结构用于内存池对内存块进行管理,管理结构对用户不可见;内存块的管理结构内有链表结构,用于将同类型的同状态内存块连接起来,大小相同的状态相同的内存块在一个链表中;
申请内存时,从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时,将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址;
出现问题时,将存储的函数调用栈地址转换成代码位置,支持直接定位bug出现的代码位置。
2.根据权利要求1所述用于linux环境中的内存池调试方法,其特征在于:内存块的管理结构内有标记表明此内存块是inuse或free的状态,如果对一个free的内存块进行释放操作,就是double free状态;inuse表示被申请状态,free表示空闲未被申请的状态,double free表示重复释放状态。
3.根据权利要求1所述用于linux环境中的内存池调试方法,其特征在于:申请内存时是从对应大小的空闲内存块链表free list里取一个内存块返回给用户使用,同时放置到对应大小的被分配内存块链表inuse list中。
4.根据权利要求1所述用于linux环境中的内存池调试方法,其特征在于:内存池里的内存块被创建出来后,不能被销毁,内存的申请和释放只是将内存块在内存池的不同链表间转换,支持保留内存块管理结构内存储的debug信息。
5.根据权利要求1所述用于linux环境中的内存池调试方法,其特征在于:在启动时存储进程的虚拟地址映射表,在申请和释放内存时都获取函数栈地址存储到内存块的管理结构中。
6.根据权利要求1或2或3或4或5所述用于linux环境中的内存池调试方法,其特征在于:记录函数调用栈地址是调用__builtin_return_address(n),此调用返回一个int的整数,作为栈地址存储到内存块的管理结构中;其中n表示栈的层数,调用__builtin_return_address(n)表示返回第n层的栈地址。
7.根据权利要求1或2或3或4或5所述用于linux环境中的内存池调试方法,其特征在于:将函数调用栈地址还原为代码位置是使用linux的工具addr2line和之前记录的虚拟地址映射表。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710617729.7A CN107451054A (zh) | 2017-07-26 | 2017-07-26 | 一种用于linux环境中的内存池调试方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710617729.7A CN107451054A (zh) | 2017-07-26 | 2017-07-26 | 一种用于linux环境中的内存池调试方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN107451054A true CN107451054A (zh) | 2017-12-08 |
Family
ID=60488320
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201710617729.7A Pending CN107451054A (zh) | 2017-07-26 | 2017-07-26 | 一种用于linux环境中的内存池调试方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN107451054A (zh) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109086205A (zh) * | 2018-07-25 | 2018-12-25 | 郑州云海信息技术有限公司 | 基于内存池的内存错误调试方法和装置 |
| CN111309538A (zh) * | 2020-02-27 | 2020-06-19 | 腾讯科技(成都)有限公司 | 内存检查方法、装置、电子设备及存储介质 |
| CN111611161A (zh) * | 2020-05-20 | 2020-09-01 | 中电科航空电子有限公司 | 一种应用于航空电子软件的轻量级调试工具的实现方法 |
| CN111832022A (zh) * | 2020-07-03 | 2020-10-27 | 北京智游网安科技有限公司 | Double Free漏洞检测方法、终端及存储介质 |
| CN115640241A (zh) * | 2022-10-08 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
| CN120743560A (zh) * | 2025-09-01 | 2025-10-03 | 麒麟软件有限公司 | 一种用于cae软件迭代求解法的内存管理方法 |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及系统 |
| CN102866947A (zh) * | 2012-08-29 | 2013-01-09 | 深圳市共进电子股份有限公司 | 一种Linux内核内存泄漏的检测方法 |
| CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
| CN103399825A (zh) * | 2013-08-05 | 2013-11-20 | 武汉邮电科学研究院 | 一种无锁化内存申请释放方法 |
| CN103914355A (zh) * | 2014-03-12 | 2014-07-09 | 汉柏科技有限公司 | 对内存重复释放进行定位的方法和装置 |
| CN104239205A (zh) * | 2014-09-05 | 2014-12-24 | 上海斐讯数据通信技术有限公司 | 内存重复释放的检测方法 |
| EP2851810A1 (en) * | 2013-09-24 | 2015-03-25 | Continental Automotive GmbH | Management of a memory |
| CN105260314A (zh) * | 2015-11-03 | 2016-01-20 | 上海斐讯数据通信技术有限公司 | 内存泄漏的监测方法 |
| CN106407031A (zh) * | 2016-09-14 | 2017-02-15 | 华为数字技术(成都)有限公司 | 一种内存泄露定位方法及电子设备 |
| CN106502880A (zh) * | 2016-09-20 | 2017-03-15 | 东软集团股份有限公司 | 一种内存泄漏调试方法及装置 |
| CN106919454A (zh) * | 2017-01-25 | 2017-07-04 | 福建三元达网络技术有限公司 | 基于lte协议栈的内存池问题定位方法及其系统 |
| CN106933733A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种确定内存泄露位置的方法和装置 |
-
2017
- 2017-07-26 CN CN201710617729.7A patent/CN107451054A/zh active Pending
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及系统 |
| CN102866947A (zh) * | 2012-08-29 | 2013-01-09 | 深圳市共进电子股份有限公司 | 一种Linux内核内存泄漏的检测方法 |
| CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
| CN103399825A (zh) * | 2013-08-05 | 2013-11-20 | 武汉邮电科学研究院 | 一种无锁化内存申请释放方法 |
| EP2851810A1 (en) * | 2013-09-24 | 2015-03-25 | Continental Automotive GmbH | Management of a memory |
| CN103914355A (zh) * | 2014-03-12 | 2014-07-09 | 汉柏科技有限公司 | 对内存重复释放进行定位的方法和装置 |
| CN104239205A (zh) * | 2014-09-05 | 2014-12-24 | 上海斐讯数据通信技术有限公司 | 内存重复释放的检测方法 |
| CN105260314A (zh) * | 2015-11-03 | 2016-01-20 | 上海斐讯数据通信技术有限公司 | 内存泄漏的监测方法 |
| CN106933733A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种确定内存泄露位置的方法和装置 |
| CN106407031A (zh) * | 2016-09-14 | 2017-02-15 | 华为数字技术(成都)有限公司 | 一种内存泄露定位方法及电子设备 |
| CN106502880A (zh) * | 2016-09-20 | 2017-03-15 | 东软集团股份有限公司 | 一种内存泄漏调试方法及装置 |
| CN106919454A (zh) * | 2017-01-25 | 2017-07-04 | 福建三元达网络技术有限公司 | 基于lte协议栈的内存池问题定位方法及其系统 |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109086205A (zh) * | 2018-07-25 | 2018-12-25 | 郑州云海信息技术有限公司 | 基于内存池的内存错误调试方法和装置 |
| CN111309538A (zh) * | 2020-02-27 | 2020-06-19 | 腾讯科技(成都)有限公司 | 内存检查方法、装置、电子设备及存储介质 |
| CN111309538B (zh) * | 2020-02-27 | 2023-03-21 | 腾讯科技(成都)有限公司 | 内存检查方法、装置、电子设备及存储介质 |
| CN111611161A (zh) * | 2020-05-20 | 2020-09-01 | 中电科航空电子有限公司 | 一种应用于航空电子软件的轻量级调试工具的实现方法 |
| CN111611161B (zh) * | 2020-05-20 | 2023-08-08 | 中电科航空电子有限公司 | 一种应用于航空电子软件的轻量级调试工具的实现方法 |
| CN111832022A (zh) * | 2020-07-03 | 2020-10-27 | 北京智游网安科技有限公司 | Double Free漏洞检测方法、终端及存储介质 |
| CN111832022B (zh) * | 2020-07-03 | 2024-02-13 | 北京智游网安科技有限公司 | Double Free漏洞检测方法、终端及存储介质 |
| CN115640241A (zh) * | 2022-10-08 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
| CN120743560A (zh) * | 2025-09-01 | 2025-10-03 | 麒麟软件有限公司 | 一种用于cae软件迭代求解法的内存管理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107451054A (zh) | 一种用于linux环境中的内存池调试方法 | |
| CN105830022B (zh) | 访问文件的方法和装置 | |
| JP5489991B2 (ja) | メモリ割り当ての機構 | |
| JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
| CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
| US20100070544A1 (en) | Virtual block-level storage over a file system | |
| US20120030265A1 (en) | Fileset Masks to Cluster Inodes for Efficient Fileset Management | |
| US20190340374A1 (en) | Low latency access to physical storage locations by implementing multiple levels of metadata | |
| CN101582092B (zh) | 一种实现保存内存中的数据的方法及装置 | |
| CN109445713A (zh) | 一种元数据卷的存储状态记录方法、系统及相关组件 | |
| CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
| CN109783396A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
| US11385900B2 (en) | Accessing queue data | |
| CN103914355A (zh) | 对内存重复释放进行定位的方法和装置 | |
| CN107391544A (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
| CN114546248A (zh) | 一种内存文件系统及存储块的处理方法 | |
| US20100161668A1 (en) | Method and system for index serialization | |
| CN110263012B (zh) | 一种磁盘缓存方法及系统 | |
| CN104598161B (zh) | 数据读取、写入方法和装置及数据存储结构 | |
| CN108228606A (zh) | 数据的写入方法及装置 | |
| CN101030165A (zh) | 一种磁盘空间管理方法及系统 | |
| CN103377141B (zh) | 高速存储区的访问方法以及访问装置 | |
| CN107391040A (zh) | 一种存储阵列磁盘io调度的方法及装置 | |
| CN104301228A (zh) | 网络处理器中查找模块的实现方法及系统 | |
| CN105512039A (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 | ||
| TA01 | Transfer of patent application right |
Effective date of registration: 20201028 Address after: 430205 No.1 tanhu 2nd Road, Canglong Island, Jiangxia Economic Development Zone, Wuhan City, Hubei Province Applicant after: Wuhan Hongxin Technology Development Co.,Ltd. Address before: 430073 Hubei province Wuhan Dongxin East Lake high tech Development Zone, Road No. 5 Applicant before: Wuhan Hongxin Telecommunication Technologies Co.,Ltd. |
|
| TA01 | Transfer of patent application right | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171208 |
|
| RJ01 | Rejection of invention patent application after publication |