CN108958952A - 消息通讯方法、装置、设备及可读存储介质 - Google Patents

消息通讯方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN108958952A
CN108958952A CN201810669768.6A CN201810669768A CN108958952A CN 108958952 A CN108958952 A CN 108958952A CN 201810669768 A CN201810669768 A CN 201810669768A CN 108958952 A CN108958952 A CN 108958952A
Authority
CN
China
Prior art keywords
memory
message communication
memory block
pool
block
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
Application number
CN201810669768.6A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810669768.6A priority Critical patent/CN108958952A/zh
Publication of CN108958952A publication Critical patent/CN108958952A/zh
Pending legal-status Critical Current

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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种消息通讯方法,包括:将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中;当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;利用分配的内存块进行消息通讯;当消息通讯结束时,将分配的内存块放回内存池。该方法可以减少消息通讯过程中系统内存的分配以及释放次数,提高消息通讯的效率;本发明还公开了一种消息通讯装置、设备及可读存储介质。

Description

消息通讯方法、装置、设备及可读存储介质
技术领域
本发明涉及数据管理领域,特别涉及一种消息通讯方法、装置、设备及可读存储介质。
背景技术
系统在进行消息发送或接收时,需要为所发送的消息或所接收的消息分配一定的系统内存资源,消息发送完成或接收处理完成后再对其使用的系统内存空间进行释放。当在进行大规模消息通讯的时候,需要不断的进行系统内存的分配和释放,虽然单次的内存分配及释放耗时很短,但是在大规模消息通讯时,内存的分配和释放极其频繁,其耗时会严重影响消息通讯的性能。
因此,如何减少消息通讯过程中系统内存的分配以及释放次数,提高消息通讯的效率,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种消息通讯方法,该方法可以减少消息通讯过程中系统内存的分配以及释放次数,提高消息通讯的效率;本发明的另一目的是提供一种消息通讯装置、设备及可读存储介质。
为解决上述技术问题,本发明提供一种消息通讯方法,包括:
将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中;
当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;
利用分配的内存块进行消息通讯;
当消息通讯结束时,将所述分配的内存块放回所述内存池。
可选地,所述将预先分配的用于消息通讯的内存进行分割包括:
将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块;
则所述根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配内存块具体为:
根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配对应个数的内存块。
可选地,所述用于消息通讯的内存的分配方法包括:
统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果;
根据所述统计结果分配对应大小的内存块至内存池。
可选地,所述消息通讯方法还包括:
根据所述管理链表中的内存块记录信息判断剩余空闲内存块大小和/或数量是否小于阈值;
如果是,分配系统空闲内存至内存池中。
可选地,所述内存池中内存块占用情况的记录方法包括:
将内存池中空闲内存块信息存储于管理链表中;
当进行消息通讯时,将进行消息通讯占用的内存块数据从所述管理链表中移出,并添加至通讯链表中;
当消息通讯结束时。将占用的内存块数据从所述通讯链表中重新添加至所述管理链表中。
本发明公开一种消息通讯装置,包括:
设置单元,用于将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中;
分配单元,用于当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;
通讯单元,用于利用分配的内存块进行消息通讯;
放回单元,用于当消息通讯结束时,将所述分配的内存块放回所述内存池中。
可选地,所述设置单元包括:内存块等量分割单元,用于将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块;
则与所述内存块等量分割单元连接的分配单元具体用于:根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配对应个数的内存块。
可选地,所述分配单元包括:统计子单元以及分配子单元;
其中,所述统计子单元用于统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果;所述分配子单元用于根据所述统计结果分配对应大小的内存块至内存池。
本发明公开一种消息通讯设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现所述消息通讯方法的步骤。
本发明公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述消息通讯方法的步骤。
本发明所提供的消息通讯方法,当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块,这些内存块经过一次从系统内存中分配至内存池后,在内存池中再次进行分配时调用预先一次性申请适当大小的内存作为一个内存池,之后对内存的分配和释放则可以通过这个内存池来完成,实际的多次内存分配转换为一次内存分配,分配的内存经一次分配后可供多次循环使用,大大减少了内存分配频率。利用分配的内存块进行消息通讯,当消息通讯结束时,将分配的内存块重新投入内存池中,恢复空闲的内存块只是重新投入内存池中而并非进行内存释放,这样,将进行消息通讯时大规模系统内存的分配与释放转换为系统内存的一次分配多次使用,大大减少大规模消息通讯时系统内存的分配及释放次数,不会影响系统消息通讯的性能的同时可以有效的提高消息通讯的效率。
本发明还公开了一种消息通讯装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的消息通讯方法的流程图方法的流程图;
图2为本发明实施例提供的消息通讯装置的结构框图;
图3为本发明实施例提供的消息通讯设备的结构框图;
图4为本发明实施例提供的消息通讯设备的结构示意图。
具体实施方式
本发明的核心是提供一种消息通讯方法,该方法可以减少消息通讯过程中系统内存的分配以及释放次数,提高消息通讯的效率;本发明的另一核心是提供一种消息通讯装置、设备及可读存储介质。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种消息通讯方法,请参考图1,图1为本实施例提供的消息通讯方法的流程图;该方法可以包括:
步骤s100、将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中。
内存池是在真正占用内存之前,先申请分配一定数量的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存,这样的一个显著优点是使得内存分配效率得到提升。本实施例中将内存池应用于系统内消息通讯,将进行消息通讯时内存分配与释放转化为内存池的一次内存分配与内存释放,大大减少了内存分配与释放的频率。
而其中内存块可以是相同大小的,也可以大小不同。优选地,为了适应不同大小的消息占用,可以将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块,将这些大小相同的内存块作为最小单元进行对应消息通讯的分配。比如内存池中的内存块都是大小为1的内存块,当某次消息通讯需要占用2个内存时,划分两个内存块进行消息通讯即可;当某次消息通讯需要占用7个内存时,划分七个内存块进行消息通讯即可,这样无需关注内存池每个内存块的大小,只需根据所需的内存大小对内存池中内存块进行划分即可,可以大大简化内存块分配过程。
另外,预先分配的用户消息通讯的内存的大小可以由用户设定,具体设定规则不做限定,优选地,为了尽量减少内存占用的同时保证消息的及时正常通讯,可以统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果;根据统计结果分配对应大小的内存块至内存池。比如统计得到同一时段系统内用于消息通讯的内存占用最大为500M,则分配500M内存给内存池即可。
内存池可以在进行一个阶段的消息通讯前或者消息通讯程序初始化时进行创建以及初始化,可以加强内存的流动性,避免内存不足的情况;当内存空闲资源较多时,也可以设置固定的一块内存专门用于进行消息通讯,此时的内存池可以是固定设置的,即在一次创建后一直使用。
步骤s110、当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块。
进行消息通讯时分配的内存块是从内存池中获取的,无需系统进行内存的分配,大大减少了大规模消息通讯时系统内存的分配次数。
内存池中内存块的占用情况记录在管理链表中,对内存块的分配都是基于管理链表实现的。例如查找管理链表中空闲内存块地址,获取一定个数的空闲内存块地址,利用这些内存块进行消息通讯。
管理链表中具体记录的信息可以包括比如内存池中所有空闲的内存块的大小(当在进行内存块的分割时进行均分可以不记录各内存块的大小)、内存块的地址等,还可以记录有内存池中已经被占用进行消息通讯的内存块的占用情况,比如起始占用时间以及内存块的地址等,在此对管理链表中记录的内存块占用情况包括的具体数据项目不做限定。
为减少管理链表中数据查找难度,提高管理效率,优选地,可以只在管理链表中存储空闲内存块的信息,将被占用的内存块信息存储至通讯链表中,当内存块被占用时,即把内存块信息从管理链表中移除,当该内存块释放时,再将其重新投入至管理链表中,这样保持管理链表中的内存块均为空闲内存块,避免其他因素的干扰,方便内存块的分配,通过专门的通讯链表进行通讯内存块的管理,保证内存块的反复循环。
具体地,内存池中内存块占用情况的记录方法可以包括:
1)、将内存池中空闲内存块信息存储于管理链表中。
2)、当进行消息通讯时,将进行消息通讯占用的内存块数据从管理链表中移出,并添加至通讯链表中。
3)、当消息通讯结束时。将占用的内存块数据从通讯链表中重新添加至管理链表中。
步骤s120、利用分配的内存块进行消息通讯。
当系统中需要进行消息通讯时,利用内存池中分配的内存块进行消息通讯,大量反复的消息通讯过程无需内存的大量反复的分配过程,只需通过内存池对系统已经分配好的内存进行具体的应用即可。比如在一个通讯软件中需要进行5万次的数据通讯,则需要5万次的内存分配,会严重影响系统的通讯效率,应用本实施例的通讯方法只需进行一次内存分配即可,效果显著。
步骤s130、当消息通讯结束时,将分配的内存块重新投入内存池中。
当通讯完成后需要解除内存的占用,将结束任务的内存块重新投入内存池即可,无需进行内存的释放。比如在一个通讯软件中需要进行5万次的数据通讯,则需要5万次的内存释放,会严重影响系统的通讯效率,应用本实施例的通讯方法只需进行一次内存释放即可,可以显著提升通讯速率。
基于上述技术方案,本实施例所提供的消息通讯方法,当进行消息通讯时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块,这些内存块经过一次从系统内存中分配至内存池后,在内存池中再次进行分配时调用预先一次性申请适当大小的内存作为一个内存池,之后对内存的分配和释放则可以通过这个内存池来完成,实际的多次内存分配转换为一次内存分配,分配的内存经一次分配后可供多次循环使用,大大减少了内存分配频率。利用分配的内存块进行消息通讯,当消息通讯结束时,将分配的内存块重新投入内存池中,恢复空闲的内存块只是重新投入内存池中而并非进行内存释放,这样,将进行消息通讯时大规模系统内存的分配与释放转换为系统内存的一次分配多次使用,大大减少大规模消息通讯时系统内存的分配及释放次数,不会影响系统消息通讯的性能的同时可以有效的提高消息通讯的效率。
基于上述实施例,由于预先分配的应用于内存池的内存是固定的,可能会出现某个时刻消息通讯量激增,导致内存池中内存块枯竭的情况,为保证系统消息通讯的正常进行,优选地,可以根据管理链表中的内存块记录信息判断剩余空闲内存块大小和/或数量是否小于阈值;如果是,分配系统空闲内存至内存池中。当内存池中空闲内存块的数量过少或者已经枯竭时,可以分配新的系统内存至内存池中,通过对内存池中剩余空闲内存的实时监控,可以保证系统通讯的顺畅进行。
为加深对本发明提出的消息通讯方法的理解,在此以将本发明提出的消息通讯方法应用于进行消息通讯的程序为例进行介绍。
首先,消息通讯程序启动后,创建内存池,分配一大块内存,并且将其分割成N个长度为L的内存块,将内存池中内存块的状态信息记录组成一个链表。
本发明采用内存池的方式进行系统内存的分配使用,内存池初始化时从系统内存中分配一大块内存,并且将这块内存分割成N个小块,每个小块(chunk)的长度都为L,并使用链表来记录池子中所有chunk。
然后,根据实际需要获取n个内存块,组成一个新的内存链表,供收发消息使用。
当发送消息或接收消息时,根据需要使用的内存长度Len,从池子中取n个chunk,并将这些chunk从池子链表中删除,其中n为满足n*L>=Len的最小整数。然后将这n个chunk组成一个新的链表,将要发送或接收的消息内容依次存入该链表中供程序后续处理。
最后,消息收发完成后,将其所用的内存链表中的内存块,重新放回内存池中,记录信息恢复至内存池链表中,以供下次使用。
当发送消息成功后或接收消息处理完成后,将该消息使用的chunk内存,重新添加到池子链表中,以供下次使用。
当程序结束运行时,将分配至内存池的内存释放。
另外,当内存池链表中的内存块不足时,重新分配新的系统内存,并将其分割成一个个内存块对应添加到内存池以及链表中。
为提高内存的利用率,本实施例中采用在程序启动时将内存分配至内存池中。当然,如果系统空间空闲较多时,也可以将内存固定存储至内存池进行消息通讯,在此不做限定。
本实施例中消息通讯程序采用内存池的方式进行系统内存的分配使用,内存池初始化时从系统内存中分配一大块内存,这些内存可以多次循环使用,直到程序结束时再进行释放,这样可以大大减少内存分配和释放的次数。
请参考图2,图2为本实施例提供的消息通讯装置的结构框图;该装置可以包括:设置单元200,分配单元210、通讯单元220以及放回单元230。本实施例提供的消息通讯装置可与上述消息通讯方法可相互对照。
其中,设置单元200主要用于将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中。
分配单元210主要用于当进行消息通讯时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;其中,内存池中包括:将预先分配的用于消息通讯的内存分割得到的若干内存块。
通讯单元220主要用于利用分配的内存块进行消息通讯。
放回单元230主要用于当接收到消息通讯指令时,将分配的内存块放回内存池中。
可选地,设置单元200具体可以包括内存块等量分割单元,用于将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块;
则与内存块等量分割单元连接的分配单元210具体用于:根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从内存池中分配对应个数的内存块。
优选地,分配单元210具体可以包括:统计子单元以及分配子单元。
其中,统计子单元用于统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果。
分配子单元用于根据统计结果分配对应大小的内存块至内存池。
优选地,本实施例提供的消息通讯装置可以还包括空闲内存块检测单元,用于:根据管理链表中的内存块记录信息判断剩余空闲内存块大小和/或数量是否小于阈值;如果是,分配系统空闲内存至内存池中。
消息通讯装置中信息记录单元用于将内存池中空闲内存块信息存储于管理链表中;当进行消息通讯时,将进行消息通讯占用的内存块数据从管理链表中移出,并添加至通讯链表中;当消息通讯结束时。将占用的内存块数据从通讯链表中重新添加至管理链表中。
请参考图3,图3为本实施例提供的消息通讯设备的结构框图;该设备可以包括:存储器300以及处理器310。消息通讯设备可参照上述消息通讯方法的介绍。
其中,存储器300主要用于存储程序;
处理器310主要用于执行程序时实现上述消息通讯方法的步骤。
请参考图4,为本实施例提供的消息通讯设备的结构示意图,该通讯设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在通讯设备301上执行存储介质330中的一系列指令操作。
通讯设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的消息通讯方法中的步骤可以由消息通讯设备的结构实现。
本实施例公开了一种可读存储介质,可读存储介质上存储有程序,程序被处理器执行时实现消息通讯方法的步骤,其中,消息通讯方法可参照图1对应的实施例,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的消息通讯方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种消息通讯方法,其特征在于,包括:
将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中;
当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;
利用分配的内存块进行消息通讯;
当消息通讯结束时,将所述分配的内存块放回所述内存池。
2.如权利要求1所述的消息通讯方法,其特征在于,所述将预先分配的用于消息通讯的内存进行分割包括:
将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块;
则所述根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配内存块具体为:
根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配对应个数的内存块。
3.如权利要求1所述的消息通讯方法,其特征在于,所述用于消息通讯的内存的分配方法包括:
统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果;
根据所述统计结果分配对应大小的内存块至内存池。
4.如权利要求1所述的消息通讯方法,其特征在于,还包括:
根据所述管理链表中的内存块记录信息判断剩余空闲内存块大小和/或数量是否小于阈值;
如果是,分配系统空闲内存至内存池中。
5.如权利要求1所述的消息通讯方法,其特征在于,所述内存池中内存块占用情况的记录方法包括:
将内存池中空闲内存块信息存储于管理链表中;
当进行消息通讯时,将进行消息通讯占用的内存块数据从所述管理链表中移出,并添加至通讯链表中;
当消息通讯结束时。将占用的内存块数据从所述通讯链表中重新添加至所述管理链表中。
6.一种消息通讯装置,其特征在于,包括:
设置单元,用于将预先分配的用于消息通讯的内存进行分割,并将得到的若干内存块置于内存池中;
分配单元,用于当接收到消息通讯指令时,根据管理链表中记录的内存池中内存块占用情况从内存池中分配内存块;
通讯单元,用于利用分配的内存块进行消息通讯;
放回单元,用于当消息通讯结束时,将所述分配的内存块放回所述内存池中。
7.如权利要求6所述的消息通讯装置,其特征在于,所述设置单元包括:内存块等量分割单元,用于将预先分配的用于消息通讯的内存进行等长度分割,得到大小相同的若干内存块;
则与所述内存块等量分割单元连接的分配单元具体用于:根据消息占用内存的大小以及管理链表中记录的内存池中内存块占用情况,从所述内存池中分配对应个数的内存块。
8.如权利要求6所述的消息通讯装置,其特征在于,所述分配单元包括:统计子单元以及分配子单元;
其中,所述统计子单元用于统计系统内同时进行的消息通讯平均所占用内存大小,得到统计结果;所述分配子单元用于根据所述统计结果分配对应大小的内存块至内存池。
9.一种消息通讯设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现如权利要求1至5任一项所述消息通讯方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述消息通讯方法的步骤。
CN201810669768.6A 2018-06-26 2018-06-26 消息通讯方法、装置、设备及可读存储介质 Pending CN108958952A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810669768.6A CN108958952A (zh) 2018-06-26 2018-06-26 消息通讯方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810669768.6A CN108958952A (zh) 2018-06-26 2018-06-26 消息通讯方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN108958952A true CN108958952A (zh) 2018-12-07

Family

ID=64486810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810669768.6A Pending CN108958952A (zh) 2018-06-26 2018-06-26 消息通讯方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN108958952A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442530A (zh) * 2019-07-11 2019-11-12 福建天泉教育科技有限公司 优化内存数据处理的方法、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915276A (zh) * 2012-09-25 2013-02-06 武汉邮电科学研究院 一种用于嵌入式系统的内存控制方法
CN103530239A (zh) * 2013-10-18 2014-01-22 深圳市新格林耐特通信技术有限公司 一种使用内存池提升通信服务器性能的方法
US20150058530A1 (en) * 2013-08-22 2015-02-26 Gautham Reddy Smart dynamic wear balancing between memory pools
CN107168800A (zh) * 2017-05-16 2017-09-15 郑州云海信息技术有限公司 一种内存分配方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915276A (zh) * 2012-09-25 2013-02-06 武汉邮电科学研究院 一种用于嵌入式系统的内存控制方法
US20150058530A1 (en) * 2013-08-22 2015-02-26 Gautham Reddy Smart dynamic wear balancing between memory pools
CN103530239A (zh) * 2013-10-18 2014-01-22 深圳市新格林耐特通信技术有限公司 一种使用内存池提升通信服务器性能的方法
CN107168800A (zh) * 2017-05-16 2017-09-15 郑州云海信息技术有限公司 一种内存分配方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442530A (zh) * 2019-07-11 2019-11-12 福建天泉教育科技有限公司 优化内存数据处理的方法、存储介质

Similar Documents

Publication Publication Date Title
CN103810020B (zh) 虚拟机弹性伸缩方法及装置
CN108363623A (zh) Gpu资源调度方法、装置、设备及计算机可读存储介质
CN105373487B (zh) 一种存储操作系统的碎片整理方法及系统
CN102004670A (zh) 一种基于MapReduce的自适应作业调度方法
CN104320854B (zh) 资源调度方法及装置
CN105511806B (zh) 处理写请求的方法和移动终端
CN106095572A (zh) 一种大数据处理的分布式调度系统及方法
CN106598495A (zh) 一种混合存储服务质量的控制方法及控制装置
CN106325758A (zh) 一种队列存储空间管理方法及装置
CN106406756A (zh) 一种文件系统的空间分配方法及装置
CN108064377A (zh) 一种多系统共享内存的管理方法及装置
CN108241717A (zh) 一种数据处理方法、装置及系统
CN109872049B (zh) 资源配置优化方法及装置
CN110474845A (zh) 流表项淘汰方法及相关装置
US10901890B2 (en) Memory reclaiming method and apparatus
CN105354147A (zh) 一种内存池管理方法及管理系统
CN109471725A (zh) 资源分配方法、装置和服务器
CN109002363A (zh) 一种事件处理方法、装置、设备及可读存储介质
CN108958952A (zh) 消息通讯方法、装置、设备及可读存储介质
CN109656836A (zh) 一种数据处理方法及装置
CN111193802A (zh) 基于用户组的资源动态分配方法、系统、终端及存储介质
CN111106946A (zh) 一种联网设备边缘计算节点改造方法和系统
CN110442530A (zh) 优化内存数据处理的方法、存储介质
CN104778125B (zh) 一种内存管理方法及系统
CN110109865A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181207