CN112559184A - 一种云桌面动态分配内存的方法及装置 - Google Patents
一种云桌面动态分配内存的方法及装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms 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显示屏上。
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)
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 | 深圳富泰宏精密工业有限公司 | 内存检测系统及方法 |
-
2020
- 2020-12-17 CN CN202011513217.4A patent/CN112559184A/zh active Pending
Patent Citations (6)
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 |
---|---|---|
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 | |
KR20130055515A (ko) | 데이터 프로세싱 시스템의 메모리 사용을 추적하는 방법 | |
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 | |
US20040098724A1 (en) | Associating a native resource with an application | |
US10949342B2 (en) | Persistent memory garbage collection | |
CN103150257A (zh) | 一种内存管理方法和装置 | |
US9146847B2 (en) | Optimizing for page sharing in virtualized java virtual machines | |
US20210200668A1 (en) | Reserved memory in memory management system | |
WO2016130487A1 (en) | Resource management | |
US8255431B2 (en) | Managing memory | |
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 | |
US20080091909A1 (en) | Method and system to manage virtual machine memory | |
US9965357B1 (en) | Virtual backup and restore of virtual machines | |
US20240143220A1 (en) | Data swapping method and apparatus | |
CN105677481A (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 |