CN106991010A - 一种用于流媒体服务器的内存集中动态分配方法 - Google Patents

一种用于流媒体服务器的内存集中动态分配方法 Download PDF

Info

Publication number
CN106991010A
CN106991010A CN201710175311.5A CN201710175311A CN106991010A CN 106991010 A CN106991010 A CN 106991010A CN 201710175311 A CN201710175311 A CN 201710175311A CN 106991010 A CN106991010 A CN 106991010A
Authority
CN
China
Prior art keywords
memory block
memory
internal memory
internal
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.)
Granted
Application number
CN201710175311.5A
Other languages
English (en)
Other versions
CN106991010B (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.)
CICT Mobile Communication Technology Co Ltd
Original Assignee
Wuhan Hongxin Telecommunication Technologies 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 Wuhan Hongxin Telecommunication Technologies Co Ltd filed Critical Wuhan Hongxin Telecommunication Technologies Co Ltd
Priority to CN201710175311.5A priority Critical patent/CN106991010B/zh
Publication of CN106991010A publication Critical patent/CN106991010A/zh
Application granted granted Critical
Publication of CN106991010B publication Critical patent/CN106991010B/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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种用于流媒体服务器的内存集中动态分配方法,对不同的数据类型进行内存分配时,集中动态管理分配和释放,实现方式包括内存初始化时,传入内存块单元大小和内存块单元数量;对申请的内存块单元大小进行4位字节对齐运算;通过冒泡法对内存块单元大小进行从小到大的排序,将内存块单元大小相同的内存块单元进行合并;初始化内存池,遍历各内存块类型,配置内存块信息,针对当前内存块类型根据相应单元块数量遍历生成空闲内存块单元节点链表;根据需要,将已分配的内存池空闲空间分配给新节点,释放掉不需要的内存节点。本发明采用内存池的设计,对内存的分配与释放进行算集中管理,提高了系统运行的效率,减少了内存泄露的风险。

Description

一种用于流媒体服务器的内存集中动态分配方法
技术领域
本发明涉及到音视频技术领域,具体是一种用于流媒体服务器的内存集中动态分配方法,用于提高系统的运行效率和避免内存泄露。
背景技术
目前C/C++下内存管理几乎是每一个程序员头疼的问题,分配足够的内存、追踪内存的分配与释放——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有如下弊端:
1、对于流媒体服务器来说,内存的使用相当的频繁,并且内存块的申请一般比较大,对于频繁使用malloc/free、new/delete,会占用比较多的系统资源。
2、频繁的使用还会产生大量的内存碎片,从而降低程序以及系统的运行效率。
3、容易造成内存泄露,并且很难发现。
定义:
mallo/free:是C/C++的标准库函数,动态分配内存和释放内存函数;
new/delete:是C++的运算符,动态分配内存和释放内存函数。
发明内容
本发明针对以上的弊端,采用内存池的设计,对内存的分配与释放进行集中管理,代替直接调用malloc/free、new/delete进行内存管理的常用方法。
为实现该目的,本发明采用如下技术方案:
一种用于流媒体服务器的内存集中动态分配方法,对不同的数据类型进行内存分配时,集中动态管理分配和释放,实现方式如下,
步骤S1,内存初始化时,传入的参数包括内存块单元大小和内存块单元数量;
步骤S2,对申请的内存块单元大小进行4位字节对齐运算;
步骤S3,通过冒泡法对申请的各内存块单元相应内存块单元大小进行从小到大的排序,得到相应数组;对应的内存块单元数量也对应排序,得到相应数组;
步骤S4,根据步骤S3所得申请的内存块单元大小相应数组和内存块单元数量相应数组,将内存块单元大小相同的内存块单元进行合并,每种内存块单元大小对应一种内存块类型,得到内存块类型分别相应单元块数量;
步骤S5,分配内存池地址,初始化内存池,创建内存池互斥对象;根据步骤S4所得结果,遍历各内存块类型,配置内存块信息,针对当前内存块类型根据相应单元块数量遍历生成空闲内存块单元节点链表;
步骤S6,根据需要,将已分配的内存池空闲空间分配给新节点,释放掉不需要的内存节点。
而且,步骤S5中,遍历各内存块类型时,配置内存块信息如下,
赋值内存块空间TBlockInfo的地址为内存池指向的内存空间地址加上当前i值;
初始化内存块空间大小赋值为内存块单元大小数组标号为i对应元素的值A(i);
初始化内存块空间单元个数为内存块单元数量数组标号为i对应元素的值B(i);
初始化可用单元为零,初始化已用单元个数为零;
初始化内存块空间开始地址为,分配大小为A(i)×B(i)的内存空间指向的地址;
赋值内存块空间的结束地址为,内存块空间开始地址加上A(i)×B(i)。
而且,步骤S6中,将已分配的内存池空闲空间分配给新节点实现方式为,
导入需要分配的内存块单元,锁定内存池互斥变量;以内存块的类型BlockType数值为变量循环遍历内存池;比较需要分配内存块单元大小与内存池中空闲内存块单元的内存块单元大小比较,如果为真,从空闲内存块单元中取出第一个大于需要分配内存块单元的内存块单元,将内存块单元从空闲单元链表中取出,插入到已用的内存块链表中,同时将对应的可用的内存块数目减1以及已用的内存块数目加1。
而且,步骤S6中,释放掉不需要的内存节点实现方式为,
导入需释放的内存节点,从内存池中找到该节点,并从已用的内存块链表中删掉,然后插入到可用的内存块链表中,同时将对应的可用的内存块数目加1以及已用的内存块数目减1。
本发明通过采用内存池的设计,对内存的分配与释放进行集中管理,代替直接调用malloc/free、new/delete进行内存管理的常用方法,避免频繁使用malloc/free、new/delete,带来的用比较多的系统资源问题,提高了程序和系统的运行效率,避免产生大量的内存碎片以及内存泄露带来的问题,具有重要的市场价值。
附图说明
图1为本发明方法原理图;
图2为本发明实施例的流程示意图。
具体实施方式
下面结合附图和实施例对本发明进行更加详细的描述。
现有的方法在频繁申请和使用内存方面存在速度,效率以及内存泄露方面的问题。本本发明提出对不同的数据类型进行内存分配时,进行集中动态管理分配和释放。
本发明的设计包括:通过对申请的内存块进行4位字节对齐,然后利用冒泡排序方法进行排序运算,再通过循环对内存单元数量和内存块单元长度的结构进行初始化可用内存空间;分配内存时,以内存块的类型数值为变量循环遍历内存池;从空闲内存单元中取出第一个大于需要分配的内存单元模块,将内存单元从空闲单元链表中取出,插入到已用的内存块链表中,同时将对应的可用的内存块数目减少,已用的内存块数目增加;内存释放时,在可用内存链表中查找到需要释放的内存节点,并删除此节点,同时插入到可用内存链表首节点,可用节点数目也增加,已用的内存块数目减少。
这样,在对内存单元进行赋值时可以集中快速分配内存空间;在内存释放时及时准确释放,有效避免了无效指针的出现,提升了效率。
实施例提供的一种用于流媒体服务器的内存集中动态分配方法,包括以下步骤:
(一)S1:内存初始化时,向初始化内存函数传入内存块单元大小(BlockSize),内存块单元数量(BlockNum),流程转向S201;例如函数参数为(内存块单元大小为数组[8,24,308],内存块单元数量值为数组[1000,1000,1000])。
初始化内存信息结构体,具体可包含如下变量:内存块单元大小(BlockSize),内存块单元数目(BlockNum),已用的内存块数目(UsedNum),可用的内存块数目(FreeNum),内存开始位置(StartAddress),内存结束位置(EndAddress),已用的内存块(UsedBlock),可用的内存块(FreeBlock);输入初始化函数参数,依次为内存块单元大小(BlockSize),内存块单元数量(BlockNum),内存块单元的类型(BlockType);内存块单元大小(BlockSize)为整型数组,数组的值为需要存储的单个结构体的大小;内存块单元数量为对应的结构体的数据单元数量;内存块单元的类型为定义的类型值,例如内存块单元大小8,24,308分别对应类型0,1,2;
(二)S2:对申请的内存块单元大小(BlockSize)进行4位字节对齐运算,其优点为:CPU在读取内存数据的时候4字节对齐会取得更快的速度;这是因为:1字节8位,4字节正好32位,而32位机器的寄存器,地址都是32位的,正好一次处理就完成,速度更快;实施例具体实现为以下子步骤:
S201:如果内存块单元(BlockSize)和0x03进行与运算为true,流程转向S203;如果内存块单元(BlockSize)和0x03进行与运算为false,流程转向S202;
S202:内存块单元大小(BlockSize)重新赋值为原内存块单元大小加上4,流程转向S301;
S203:内存块单元大小(BlockSize)重新赋值为4减去与运算的结果再加上原内存块单元大小;流程转向S301;(比如:内存块单元大小为数组[8,24,308],经过4位字节变换以后:内存块单元大小为数组[12,28,312])
(三)S3:对申请的内存块单元大小(BlockSize)进行排序,得到相应数组:
S301:通过冒泡法对申请的各内存块单元相应内存块单元大小进行从小到大的排序,对应的内存块单元数量(BlockNum)也对应排序;流程转向S401;(比如:内存块单元大小为数组[24,8,308],内存块单元数量值为数组[1000,2000,3000],经过排序后为:内存块单元大小为数组[8,24,308],内存块单元数量值为数组[2000,1000,3000])
冒泡排序实现方式为:比较相邻的元素。如果第一个比第二个大,就交换他们两个,对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
(四)S4:根据S3所得申请的内存块单元大小(BlockSize)相应数组,将内存块单元大小相同的内存块单元进行合并,每种内存块单元大小对应一种内存块类型,得到内存块类型分别相应单元块数量:
S401:比较内存块单元的大小,如果内存块单元大小相同,则合并,即内存块大小(BlockSize)相同的数量相加,更新相应内存块单元数量(BlockNum),如果不相同则跳过;流程转向S501;(比如:内存块单元大小为数组[8,8,308],内存块单元数量值为数组[1000,2000,3000],经过合并后为:内存块单元大小为数组[8,308],内存块单元数量值为数组[3000,3000],则内存块类型0相应单元块数量为3000,内存块类型2相应单元块数量为3000)。
(五)S5:采用链表的方式初始化内存池;通过malloc分配内存池的空间,创建内存池的互斥锁(Mutex),赋值内存池的内存类型;分配内存块空间,并初始化内存块空间数据值为零。实施例根据S4所得结果,分配一组按照从小到大排列的内存块单元模块数组,具体实现如下:
S501:分配内存池地址,初始化内存池,创建内存池互斥对象:分配内存池地址;创建内存池互斥锁,分配数量为内存块单元数组长度的内存块空间(TBlockInfo)(如:ptBlockInfo=(TBlockInfo*)malloc(3*sizeof(TBlockInfo))),并赋值内存池指向的内存空间地址为内存块空间(如:ptMemPool->ptBlockInfo=ptBlockInfo),以实现对每个类型进行空间分配,
ptBlockInfo、ptMemPool是自定义的结构体;流程转向S502;
sizeof:是C的标准库函数,是C/C++中的一个操作符;
*:是C语言中,标识指针类型的符号;
->:在C语言中,它是用于指向结构体的运算符。
S502:开始分配内存池内存块单元空间,为循环遍历内存块类型,首先令计数器i=0:自变量i为内存块类型,取值范围为0到(内存块类型总数-1),以便循环遍历内存块类型,所述内存块类型总数是总类型的个数,指不同的内存块的种类数量;流程转向S503;
S503:根据当前的内存块类型i,配置内存块信息(内存块大小,内存块数量,内存块可用数量,内存块已用数量,内存块开始地址),流程转向S504;
具体配置如下:
赋值内存块空间(TBlockInfo)的地址为内存池指向的内存空间地址加上当前i值;
初始化内存块空间大小赋值为内存块单元大小数组标号为i对应元素的值A(i);
初始化内存块空间单元个数为内存块单元数量数组标号为i对应元素的值B(i);
初始化可用单元为零,初始化已用单元个数为零;
初始化内存块空间开始地址为,分配大小为A(i)×B(i)的内存空间指向的地址;
赋值内存块空间的结束地址为,内存块空间开始地址加上A(i)×B(i);
S504:开始循环遍历单元块数量,初始化计数器j=0:自变量j为当前类型中单元块标识,取值范围为0到(当前类型i相应内存块单元数量-1);流程转向505;
S505:根据当前的单元块j,生成空闲内存块单元节点链表:生成空闲节点链表,申请一个局部内存块单元结构空间,赋值内存块单元为零;单元内存地址赋值为内存信息开始地址加上已循环的单元数;将内存块单元节点插入到可用的内存块(FreeBlock)节点链表第一个位置,且可用的内存块数目(FreeNum)加1,计数j加1(j++),即j=j+1;流程转向S506;
S506:判断计数器j是否小于(当前类型i相应内存块单元数量-1);如果判断结果为true,流程转向S505,继续配置当前类型i的下一个内存块单元;如果判断结果为false,说明当前类型i的内存块单元已经配置完毕,流程转向S507;
S507:计数器i加1,即令计数器i++,即i=i+1;流程转向S508;
S508:判断计数器i是否小于(内存类型总数-1),如果计算结果为true,流程转向S503,继续配置下一类型的内存块单元;如果计算结果为false,配置完成,流程转向S601;
(六)S6:根据需要分配内存块和释放内存块,包括将已分配的内存池空闲空间分配给新节点,释放掉不需要的内存节点:
S601:导入需要分配的内存块单元,锁定内存池互斥变量;以内存块的类型(BlockType)数值为变量循环遍历内存池;比较需要分配内存块单元大小与内存池中空闲内存块单元的内存块单元大小比较,如果为真,即从空闲内存块单元中取出第一个大于需要分配内存块单元的内存块单元,将内存块单元从空闲单元链表中取出,插入到已用的内存块(UsedBlock)链表中,同时将对应的可用的内存块数目(FreeNum)减1以及已用的内存块数目(UsedNum)加1;循环break;
S602:导入需释放的内存节点,从内存池中找到该节点,并从已用的内存块(UsedBlock)链表中删掉,然后插入到可用的内存块链表(FreeBlock)中,同时将对应的可用的内存块数目(FreeNum)加1以及已用的内存块数目(UsedNum)减1。
本文中所描述的具体实施例仅仅是对本发明的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (4)

1.一种用于流媒体服务器的内存集中动态分配方法,其特征在于:对不同的数据类型进行内存分配时,集中动态管理分配和释放,实现方式如下,
步骤S1,内存初始化时,传入的参数包括内存块单元大小和内存块单元数量;
步骤S2,对申请的内存块单元大小进行4位字节对齐运算;
步骤S3,通过冒泡法对申请的各内存块单元相应内存块单元大小进行从小到大的排序,得到相应数组;对应的内存块单元数量也对应排序,得到相应数组;
步骤S4,根据步骤S3所得申请的内存块单元大小相应数组和内存块单元数量相应数组,将内存块单元大小相同的内存块单元进行合并,每种内存块单元大小对应一种内存块类型,得到内存块类型分别相应单元块数量;
步骤S5,分配内存池地址,初始化内存池,创建内存池互斥对象;根据步骤S4所得结果,遍历各内存块类型,配置内存块信息,针对当前内存块类型根据相应单元块数量遍历生成空闲内存块单元节点链表;
步骤S6,根据需要,将已分配的内存池空闲空间分配给新节点,释放掉不需要的内存节点。
2.根据权利要求1所述用于流媒体服务器的内存集中动态分配方法,其特征在于:步骤S5中,
遍历各内存块类型时,配置内存块信息如下,
赋值内存块空间TBlockInfo的地址为内存池指向的内存空间地址加上当前i值;
初始化内存块空间大小赋值为内存块单元大小数组标号为i对应元素的值A(i);
初始化内存块空间单元个数为内存块单元数量数组标号为i对应元素的值B(i);
初始化可用单元为零,初始化已用单元个数为零;
初始化内存块空间开始地址为,分配大小为A(i)×B(i)的内存空间指向的地址;
赋值内存块空间的结束地址为,内存块空间开始地址加上A(i)×B(i)。
3.根据权利要求1或2所述用于流媒体服务器的内存集中动态分配方法,其特征在于:步骤S6中,将已分配的内存池空闲空间分配给新节点实现方式为,
导入需要分配的内存块单元,锁定内存池互斥变量;以内存块的类型为变量循环遍历内存池;比较需要分配内存块单元大小与内存池中空闲内存块单元的内存块单元大小比较,如果为真,从空闲内存块单元中取出第一个大于需要分配内存块单元的内存块单元,将内存块单元从空闲单元链表中取出,插入到已用的内存块链表中,同时将对应的可用的内存块数目减1以及已用的内存块数目加1。
4.根据权利要求1或2所述用于流媒体服务器的内存集中动态分配方法,其特征在于:步骤S6中,释放掉不需要的内存节点实现方式为,
导入需释放的内存节点,从内存池中找到该节点,并从已用的内存块链表中删掉,然后插入到可用的内存块链表中,同时将对应的可用的内存块数目加1以及已用的内存块数目减1。
CN201710175311.5A 2017-03-22 2017-03-22 一种用于流媒体服务器的内存集中动态分配方法 Active CN106991010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710175311.5A CN106991010B (zh) 2017-03-22 2017-03-22 一种用于流媒体服务器的内存集中动态分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710175311.5A CN106991010B (zh) 2017-03-22 2017-03-22 一种用于流媒体服务器的内存集中动态分配方法

Publications (2)

Publication Number Publication Date
CN106991010A true CN106991010A (zh) 2017-07-28
CN106991010B CN106991010B (zh) 2019-11-08

Family

ID=59412069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710175311.5A Active CN106991010B (zh) 2017-03-22 2017-03-22 一种用于流媒体服务器的内存集中动态分配方法

Country Status (1)

Country Link
CN (1) CN106991010B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783908A (zh) * 2017-11-07 2018-03-09 晶晨半导体(上海)股份有限公司 一种基于Linux内核内存泄露的检测方法
CN108958926A (zh) * 2018-05-25 2018-12-07 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的虚拟内存池设计方法
CN108984310A (zh) * 2018-08-21 2018-12-11 郑州云海信息技术有限公司 一种对象数据的构建方法和装置
CN111162937A (zh) * 2019-12-20 2020-05-15 北京格林威尔科技发展有限公司 一种在传输设备中实现内存池的方法及装置
CN111309538A (zh) * 2020-02-27 2020-06-19 腾讯科技(成都)有限公司 内存检查方法、装置、电子设备及存储介质
CN111614985A (zh) * 2020-05-09 2020-09-01 杭州国芯科技股份有限公司 一种用于数字音视频解码设备的内存调度方法
CN113419715A (zh) * 2021-06-17 2021-09-21 吕锦柏 一种基于链表的动态内存管理方法和设备
CN116627359A (zh) * 2023-07-24 2023-08-22 成都佰维存储科技有限公司 内存管理方法、装置、可读存储介质及电子设备
CN117032995A (zh) * 2023-10-08 2023-11-10 苏州元脑智能科技有限公司 内存池管理方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122883A (zh) * 2006-08-09 2008-02-13 中兴通讯股份有限公司 一种避免内存碎片化的内存分配方法
CN101140531A (zh) * 2007-10-10 2008-03-12 中兴通讯股份有限公司 快速申请内存的方法
CN101149703A (zh) * 2007-10-10 2008-03-26 中兴通讯股份有限公司 一种固定内存的管理方法
CN101266575A (zh) * 2007-03-13 2008-09-17 中兴通讯股份有限公司 一种提高内存池利用率的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122883A (zh) * 2006-08-09 2008-02-13 中兴通讯股份有限公司 一种避免内存碎片化的内存分配方法
CN101266575A (zh) * 2007-03-13 2008-09-17 中兴通讯股份有限公司 一种提高内存池利用率的方法
CN101140531A (zh) * 2007-10-10 2008-03-12 中兴通讯股份有限公司 快速申请内存的方法
CN101149703A (zh) * 2007-10-10 2008-03-26 中兴通讯股份有限公司 一种固定内存的管理方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783908A (zh) * 2017-11-07 2018-03-09 晶晨半导体(上海)股份有限公司 一种基于Linux内核内存泄露的检测方法
CN108958926B (zh) * 2018-05-25 2021-09-07 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的虚拟内存池设计方法
CN108958926A (zh) * 2018-05-25 2018-12-07 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的虚拟内存池设计方法
CN108984310A (zh) * 2018-08-21 2018-12-11 郑州云海信息技术有限公司 一种对象数据的构建方法和装置
CN111162937A (zh) * 2019-12-20 2020-05-15 北京格林威尔科技发展有限公司 一种在传输设备中实现内存池的方法及装置
CN111162937B (zh) * 2019-12-20 2023-05-16 北京格林威尔科技发展有限公司 一种在传输设备中实现内存池的方法及装置
CN111309538A (zh) * 2020-02-27 2020-06-19 腾讯科技(成都)有限公司 内存检查方法、装置、电子设备及存储介质
CN111309538B (zh) * 2020-02-27 2023-03-21 腾讯科技(成都)有限公司 内存检查方法、装置、电子设备及存储介质
CN111614985A (zh) * 2020-05-09 2020-09-01 杭州国芯科技股份有限公司 一种用于数字音视频解码设备的内存调度方法
CN111614985B (zh) * 2020-05-09 2021-10-01 杭州国芯科技股份有限公司 一种用于数字音视频解码设备的内存调度方法
CN113419715A (zh) * 2021-06-17 2021-09-21 吕锦柏 一种基于链表的动态内存管理方法和设备
CN116627359A (zh) * 2023-07-24 2023-08-22 成都佰维存储科技有限公司 内存管理方法、装置、可读存储介质及电子设备
CN116627359B (zh) * 2023-07-24 2023-11-14 成都佰维存储科技有限公司 内存管理方法、装置、可读存储介质及电子设备
CN117032995A (zh) * 2023-10-08 2023-11-10 苏州元脑智能科技有限公司 内存池管理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN106991010B (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN106991010A (zh) 一种用于流媒体服务器的内存集中动态分配方法
US8400458B2 (en) Method and system for blocking data on a GPU
CN106056529B (zh) 一种对用于图片识别的卷积神经网络训练的方法与设备
US10061622B2 (en) Updating memory topology information for virtual machines
CN104375838B (zh) 一种基于OpenMP对天文学软件Gridding的优化方法
DE102018100730A1 (de) Ausführung von Berechnungsgraphen
CN110555700A (zh) 区块链智能合约执行方法、装置、计算机可读存储介质
US20130207983A1 (en) Central processing unit, gpu simulation method thereof, and computing system including the same
US11983564B2 (en) Scheduling of a plurality of graphic processing units
CN106776809A (zh) 一种数据查询方法及系统
CN111984400A (zh) 神经网络的内存分配方法及装置
CN103902387A (zh) 一种cpu+gpu协同并行计算动态负载均衡方法
CN103177414A (zh) 一种基于结构的图节点相似度并行计算方法
CN106557366A (zh) 任务分发方法、装置及系统
DE102020103521A1 (de) Minimieren der Nutzung von Hardware-Zählern bei getriggerten Operationen für kollektive Kommunikation
CN105045670A (zh) 中央处理器和图形处理器负载均衡的方法和系统
Takafuji et al. C2CU: a CUDA C program generator for bulk execution of a sequential algorithm
CN112463383A (zh) 一种gpu分配方法、系统、存储介质及设备
DE102018005976A1 (de) Systeme, vorrichtungen und verfahren zur multiplikation und akkumulation von vektorgepackten vorzeichenbehafteten werten
WO2020103883A1 (zh) 执行矩阵乘法运算的方法、电路及soc
US20230119126A1 (en) Processing sequential inputs using neural network accelerators
CN104866297B (zh) 一种优化核函数的方法和装置
CN105874439A (zh) 不同计算单元共享内存池的内存池管理方法和相关的计算机可读介质和内存池管理装置
CN106776003A (zh) 一种系统资源分配方法及装置
US20230041163A1 (en) Sparse matrix operations for deep learning

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 430205 Hubei city of Wuhan province Jiangxia Hidden Dragon Island Tan lake two Road No. 1

Patentee after: CITIC Mobile Communication Technology Co., Ltd

Address before: 430073 Hubei province Wuhan Dongxin East Lake high tech Development Zone, Road No. 5

Patentee before: Wuhan Hongxin Telecommunication Technologies Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 430205 No.1 tanhu 2nd Road, Canglong Island, Jiangxia District, Wuhan City, Hubei Province

Patentee after: CITIC Mobile Communication Technology Co.,Ltd.

Address before: 430205 No.1 tanhu 2nd Road, Canglong Island, Jiangxia District, Wuhan City, Hubei Province

Patentee before: CITIC Mobile Communication Technology Co., Ltd