CN112559184A - 一种云桌面动态分配内存的方法及装置 - Google Patents

一种云桌面动态分配内存的方法及装置 Download PDF

Info

Publication number
CN112559184A
CN112559184A CN202011513217.4A CN202011513217A CN112559184A CN 112559184 A CN112559184 A CN 112559184A CN 202011513217 A CN202011513217 A CN 202011513217A CN 112559184 A CN112559184 A CN 112559184A
Authority
CN
China
Prior art keywords
memory
heap
application information
cloud desktop
heap memory
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
CN202011513217.4A
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.)
Chengdu Siku Intelligent Technology Co ltd
Original Assignee
Chengdu Siku Intelligent 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 Chengdu Siku Intelligent Technology Co ltd filed Critical Chengdu Siku Intelligent Technology Co ltd
Priority to CN202011513217.4A priority Critical patent/CN112559184A/zh
Publication of CN112559184A publication Critical patent/CN112559184A/zh
Pending legal-status Critical Current

Links

Images

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种云桌面动态分配内存的方法及装置,涉及云计算领域,通过内存分配器可为云桌面***分配和释放虚拟内存,提高内存的使用效率,所述云桌面***,包括内存泄漏检查模块,内存泄漏检查模块根据内存分配器对堆内存的释放情况进行内存泄漏的检查。堆内存使用完毕且内存分配器未释放该内存时,将未释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由内存泄漏检查模块输出到显示文件中,由显示装置调用。通过内存泄漏检查模块对云桌面***的堆内存申请信息的有效跟踪,对内存泄漏问题进行及时反馈,避免了因内存泄漏问题而导致的程序和设备无法正常工作的情况。

Description

一种云桌面动态分配内存的方法及装置
技术领域
本发明涉及云计算领域,具体涉及一种云桌面动态分配内存的方法及装置。
背景技术
云桌面又称桌面虚拟化、云电脑,是替代传统电脑的一种新模式;采用云桌面后,用户无需再购买电脑主机,主机所包含的CPU、内存、硬盘等组件全部在后端的服务器中虚拟出来,单台高性能服务器可以虚拟1-50台不等的虚拟主机。
动态内存分配是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。与静态内存分配方法相比,动态内存分配并不需要预先分配储存空间,而是由***根据程序需要的大小即时分配。对动态内存的操作与***当前的动态内存状态有关,在使用动态内存之前,需要向自由存储区申请内存,由于自由存储区的容量是有限的,所以在程序结束前,要进行动态内存的释放操作,防止内存发生泄露。
内存泄漏一般是指堆内存的泄漏,程序在申请获得动态内存并使用完毕后,不释放动态内存就将保存动态内存信息的变量用于其他用途,使得这些动态内存不可能再被程序使用,也无法***作***回收。内存泄漏具有隐蔽性、积累性的特点,对规模较大的程序,如果存在内存泄露,轻则会降低***的性能,甚至导致所有堆内存被分配,程序无法再次从堆内存中申请到程序执行所需要的内存,从而导致全部或者部分程序、设备无法正常工作,造成***瘫痪甚至崩溃。随着计算机应用需求的日益增加,应用程序的设计与开发也相应的日趋复杂,开发人员在程序实现的过程中处理的变量也大量增加,如何有效进行内存分配和释放,防止内存泄漏的问题变得越来越突出。
发明内容
本发明的目的在于,针对云桌面***内存分配效率不高的问题,提供了一种云桌面动态分配内存的方法及装置,利用内存分配器将动态分配内存的方式应用于云桌面***中,提高内存的使用效率,并针对在运行过程中容易产生细微、不易发现的内存泄漏的问题,设置一个内存泄漏检查模块,根据内存分配器对堆内存的释放情况,有效地检测出内存泄漏的问题,并通过显示装置进行提示,从而避免造成程序、设备无法正常工作的情况。
本发明采用的技术方案如下:
一种云桌面动态分配内存的方法,其云桌面***中包含一个内存泄漏检查模块,云桌面***向内存分配器申请内存时,内存泄漏检查模块获取云桌面***堆内存申请信息,并根据所述堆内存申请信息,启动内存分配器为云桌面***分配和释放堆内存;内存泄漏检查模块根据内存分配器对使用完毕的堆内存的释放情况,进行内存泄漏的检查;
堆内存使用完毕且内存分配器未释放该内存时,将未释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由内存泄漏检查模块输出到显示文件中,由显示装置调用;
堆内存使用完毕且内存分配器已释放该内存时,将该已释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由该模块进行删除。
进一步的,所述内存分配器,接收来自内存泄漏模块的云桌面***的堆内存申请信息,为云桌面***分配和释放堆内存。
进一步的,所述内存泄漏检查模块,包含一个信息管理链表,记录、保存堆内存申请信息;
内存泄漏检查模块与内存分配器之间的工作过程为:
A1接收内存分配器反馈的未释放的堆内存对应的堆内存申请信息,并在信息管理链表中将其标记为M;
A2接收内存分配器反馈的已释放的堆内存对应的堆内存申请信息,将信息管理链表中对应已保存的堆内存申请信息进行删除;
内存泄漏检查模块与云桌面***之间的工作过程为:
B1获取云桌面***的堆内存申请信息,查看信息管理链表是否为空;信息管理链表为空,则保存该堆内存申请信息,并用该堆内存申请信息调用内存分配器;信息管理链表不为空,则进行下一步;
B2在信息管理链表中查找携带M的堆内存申请信息;发现存在携带M的堆内存申请信息,则输出与M相同部分的堆内存申请信息到设定的显示文件中,待被显示装置调用。
一种云桌面动态分配内存的装置,通过显示装置调用显示文件夹中的堆内存申请信息对内存泄漏的问题进行提示,包括:接口、指示灯、LED显示屏,所述接口用于连接服务器与显示装置;所述指示灯,***发生内存泄漏时显示红灯并持续闪烁,***正常时显示绿灯常亮;所述LED显示屏,将发生内存泄漏的对应堆内存申请信息显示在LED显示屏上。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明所提出的一种云桌面动态分配内存的方法及装置,根据程序的需要进行动态内存分配,提高了内存的利用率;
2.本发明所设置的内存泄漏检查模块,通过对结点的跟踪,有效地检测出内存泄漏的问题,并通过显示装置进行及时的提示,从而避免造成程序、设备无法正常工作的情况。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,其中:
图1是云桌面动态分配内存方法的流程图;
图2是内存泄漏检查模块与内存分配器之间的工作流程图;
图3是内存泄漏检查模块与云桌面***之间的工作流程图。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面结合附图对本发明作详细说明。
实施例1
针对云桌面***内存分配效率不高的问题,提供了一种云桌面动态分配内存的方法,利用内存分配器将动态分配内存的方式应用于云桌面***中,提高内存的使用效率,并针对在运行过程中容易产生细微、不易发现的内存泄漏的问题,设置一个内存泄漏检查模块,云桌面***向内存分配器申请内存时,内存泄漏检查模块获取云桌面***堆内存申请信息,并根据所述堆内存申请信息,启动内存分配器为云桌面***分配和释放堆内存;内存泄漏检查模块根据内存分配器对使用完毕的堆内存的释放情况,进行内存泄漏的检查;
堆内存使用完毕且内存分配器未释放该内存时,将未释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由内存泄漏检查模块输出到显示文件中,由显示装置调用;
堆内存使用完毕且内存分配器已释放该内存时,将该已释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由该模块进行删除。
实施例2
本实施例是在实施例1的基础上,对本发明进行进一步地实施说明。
如图1所示,内存泄漏检查模块与内存分配器之间的工作过程为:内存泄漏检查模块接收到内存分配器反馈的堆内存申请信息,查看是否为已释放的堆内存对应的堆内存申请信息;若不为已释放的堆内存对应的堆内存申请信息,则在信息管理链表中将其标记为M;若为已释放的堆内存对应的堆内存申请信息,则将信息管理链表中对应已保存的堆内存申请信息进行删除。
实施例3
本实施例是在实施例1的基础上,对本发明进行进一步地实施说明。
如图2所示,内存泄漏检查模块与云桌面***之间的工作过程为:内存泄漏检查模块接收云桌面***的堆内存申请信息,查看信息管理链表是否为空;信息管理链表为空,则保存该堆内存申请信息,并用该堆内存申请信息调用内存分配器;信息管理链表不为空,则进行下一步;进一步的,在信息管理链表中查找携带M的堆内存申请信息;发现存在携带M的堆内存申请信息,则输出与M相同部分的堆内存申请信息到设定的显示文件中,待被显示装置调用。
实施例4
本实施例是在实施例1的基础上,对本发明进行进一步地实施说明。
一种云桌面动态分配内存的装置,通过显示装置调用显示文件夹中的堆内存申请信息对内存泄漏的问题进行提示,包括:接口、指示灯、LED显示屏,所述接口用于连接服务器与显示装置;所述指示灯,***发生内存泄漏时显示红灯并持续闪烁,***正常时显示绿灯常亮;所述LED显示屏,将发生内存泄漏的对应堆内存申请信息显示在LED显示屏上;通过对堆内存申请信息的跟踪,有效地检测出内存泄漏的问题,从而避免造成程序、设备无法正常工作的情况。
以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。

Claims (4)

1.一种云桌面动态分配内存的方法,其特征在于:云桌面***中包含一个内存泄漏检查模块,云桌面***向内存分配器申请内存时,内存泄漏检查模块获取云桌面***堆内存申请信息,并根据所述堆内存申请信息,启动内存分配器为云桌面***分配和释放堆内存;内存泄漏检查模块根据内存分配器对使用完毕的堆内存的释放情况,进行内存泄漏的检查;
堆内存使用完毕且内存分配器未释放该内存时,将未释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由内存泄漏检查模块输出到显示文件中,由显示装置调用;
堆内存使用完毕且内存分配器已释放该内存时,将该已释放的堆内存对应的堆内存申请信息反馈到内存泄漏检查模块,由该模块进行删除。
2.根据权利要求1所述的一种云桌面动态分配内存的方法,其特征在于:所述内存分配器,接收来自内存泄漏模块的云桌面***的堆内存申请信息,为云桌面***分配和释放堆内存。
3.根据权利要求1所述的一种云桌面动态分配内存的方法,其特征在于:所述内存泄漏检查模块,包含一个信息管理链表,记录、保存堆内存申请信息;
内存泄漏检查模块与内存分配器之间的工作过程为:
A1接收内存分配器反馈的未释放的堆内存对应的堆内存申请信息,并在信息管理链表中将其标记为M;
A2接收内存分配器反馈的已释放的堆内存对应的堆内存申请信息,将信息管理链表中对应已保存的堆内存申请信息进行删除;
内存泄漏检查模块与云桌面***之间的工作过程为:
B1获取云桌面***的堆内存申请信息,查看信息管理链表是否为空;信息管理链表为空,则保存该堆内存申请信息,并用该堆内存申请信息调用内存分配器;信息管理链表不为空,则进行下一步;
B2在信息管理链表中查找携带M的堆内存申请信息;发现存在携带M的堆内存申请信息,则输出与M相同部分的堆内存申请信息到设定的显示文件中,待被显示装置调用。
4.一种云桌面动态分配内存的装置,其特征在于:所述显示装置包括接口、指示灯、LED显示屏,所述接口用于连接服务器与显示装置;所述指示灯,***发生内存泄漏时显示红灯并持续闪烁,***正常时显示绿灯常亮;所述LED显示屏,将发生内存泄漏的对应堆内存申请信息显示在LED显示屏上。
CN202011513217.4A 2020-12-17 2020-12-17 一种云桌面动态分配内存的方法及装置 Pending CN112559184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011513217.4A CN112559184A (zh) 2020-12-17 2020-12-17 一种云桌面动态分配内存的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011513217.4A CN112559184A (zh) 2020-12-17 2020-12-17 一种云桌面动态分配内存的方法及装置

Publications (1)

Publication Number Publication Date
CN112559184A true CN112559184A (zh) 2021-03-26

Family

ID=75031982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011513217.4A Pending CN112559184A (zh) 2020-12-17 2020-12-17 一种云桌面动态分配内存的方法及装置

Country Status (1)

Country Link
CN (1) CN112559184A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794203A (zh) * 2005-12-29 2006-06-28 兆日科技(深圳)有限公司 一种定位无操作***的嵌入式***内存泄露的简易方法
CN1896957A (zh) * 2005-07-14 2007-01-17 中兴通讯股份有限公司 一种定位虚拟操作***内存泄漏的方法
CN1979426A (zh) * 2005-12-08 2007-06-13 中兴通讯股份有限公司 嵌入式***中自动监测内存泄漏与内存越界的***
CN102866947A (zh) * 2012-08-29 2013-01-09 深圳市共进电子股份有限公司 一种Linux内核内存泄漏的检测方法
CN103064784A (zh) * 2012-11-29 2013-04-24 福建师范大学 面向Xen环境的运行时内存泄漏检测方法及其实现***
CN103294588A (zh) * 2012-02-22 2013-09-11 深圳富泰宏精密工业有限公司 内存检测***及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1896957A (zh) * 2005-07-14 2007-01-17 中兴通讯股份有限公司 一种定位虚拟操作***内存泄漏的方法
CN1979426A (zh) * 2005-12-08 2007-06-13 中兴通讯股份有限公司 嵌入式***中自动监测内存泄漏与内存越界的***
CN1794203A (zh) * 2005-12-29 2006-06-28 兆日科技(深圳)有限公司 一种定位无操作***的嵌入式***内存泄露的简易方法
CN103294588A (zh) * 2012-02-22 2013-09-11 深圳富泰宏精密工业有限公司 内存检测***及方法
CN102866947A (zh) * 2012-08-29 2013-01-09 深圳市共进电子股份有限公司 一种Linux内核内存泄漏的检测方法
CN103064784A (zh) * 2012-11-29 2013-04-24 福建师范大学 面向Xen环境的运行时内存泄漏检测方法及其实现***

Similar Documents

Publication Publication Date Title
KR101357397B1 (ko) 데이터 프로세싱 시스템의 메모리 사용을 추적하는 방법
US9940228B2 (en) Proactive memory reclamation for java virtual machines
US9582312B1 (en) Execution context trace for asynchronous tasks
US5689707A (en) Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated
US8176294B2 (en) Reducing storage expansion of a virtual machine operating system
US9213623B2 (en) Memory allocation with identification of requesting loadable kernel module
US6523141B1 (en) Method and apparatus for post-mortem kernel memory leak detection
US10152409B2 (en) Hybrid in-heap out-of-heap ballooning for java virtual machines
US10949342B2 (en) Persistent memory garbage collection
KR20090079012A (ko) 가상 머신의 상태를 저장, 복원하는 방법 및 장치
CN103150257A (zh) 一种内存管理方法和装置
US20210200668A1 (en) Reserved memory in memory management system
US8255431B2 (en) Managing memory
US9146847B2 (en) Optimizing for page sharing in virtualized java virtual machines
US11341044B2 (en) Reclaiming storage resources
US10402333B2 (en) Computer system including plurality of types of memory devices and method
CN115525417A (zh) 数据通信方法、通信***及计算机可读存储介质
EP1990724A1 (en) Method for locating resource leaks during software development
CN110209354B (zh) 用于处理数据的方法、装置、设备和介质
US7725771B2 (en) Method and system for providing enhanced memory error messages
US7403887B1 (en) Emulated memory management
US20080091909A1 (en) Method and system to manage virtual machine memory
CN105677481A (zh) 一种数据处理方法、***及电子设备
US10417121B1 (en) Monitoring memory usage in computing devices
US9965357B1 (en) Virtual backup and restore of virtual machines

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