CN111522658A - 一种水务系统的内存管理方法 - Google Patents

一种水务系统的内存管理方法 Download PDF

Info

Publication number
CN111522658A
CN111522658A CN202010292422.6A CN202010292422A CN111522658A CN 111522658 A CN111522658 A CN 111522658A CN 202010292422 A CN202010292422 A CN 202010292422A CN 111522658 A CN111522658 A CN 111522658A
Authority
CN
China
Prior art keywords
memory
barrel
bucket
allocation
management method
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
CN202010292422.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.)
Xiyuntu Technology Beijing Co ltd
Original Assignee
Xiyuntu Technology Beijing 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 Xiyuntu Technology Beijing Co ltd filed Critical Xiyuntu Technology Beijing Co ltd
Priority to CN202010292422.6A priority Critical patent/CN111522658A/zh
Publication of CN111522658A publication Critical patent/CN111522658A/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种水务系统的内存管理方法,优化步骤如下:步骤一、程序运行时首先判断申请的内存是否太大;步骤二、如果上次分配的内存桶中有空余内存;步骤三、如果有,则重新启用该桶完成内存分配,否则尝试查找有空余空间的桶,如果能够找到,在桶中完成分配即可;步骤四、最后,则尝试重新分配新的桶,从而完成内存分配。其技术方案要点是,能够快速的分配小对象的内存,效率达到Windows系统提供的内存分配的若干倍;能够跟踪所有分配的对象的内存,无论是在调试环境还是在运行环境都能提供内存泄漏的报告;能够提供内存分配和释放的自动化机制,简化程序的编写。

Description

一种水务系统的内存管理方法
技术领域
本发明涉及水务系统领域,特别涉及一种水务系统的内存管理方法。
背景技术
随着近几年国家对环保的高度重视,我国水务行业进入高速发展期,各家水务公司针对自身业务进行了多种信息化尝试。但是,整个领域也面临着诸多问题,离真正的强大和成熟还有较远距离。目前迫切需要对所有系统进行整合联网,信息共享,实现供水生产、管网运行、客户服务、工程项目、应急处理等业务信息的自动化分析处理,从而打造物联网智能水务。即通过实时数据采集平台,采用地理信息可视化方式,有机整合,形成“城市供水物联网”,做出相应的处理结果与辅助决策建议,以达到更加精细和动态的方式对整个供水系统的生产、管理和服务流程进行数字化管理的目的。
水务系统需要面对大量的数据存储,大量的小内存的分配和释放的占用空间和效率问题,如果太大的内存管理不在原有内存池的范围内,则会导致效率退化,为此,我们发明一种水务系统的内存管理方法来解决上述问题。
发明内容
为了克服现有技术的不足,本发明的目的是为了解决大量的小内存的分配和释放的占用空间和效率问题,太大的内存管理不在本内存池的范围内,否则本内存池如果适应所有大小的内存的管理,那么效率将会退化,接近系统内存的分配效率。
本发明的上述技术目的是通过以下技术方案得以实现的:
一种水务系统的内存管理方法,按照大小来分类管理的,内部包含很多小的内存池,每个对应一组固定大小的内存分配和释放,每个固定分配大小的内存池,内部又是采用桶的方式来管理,每次分配一桶内存相当于255个内存单位,桶组织成平衡二叉树,方便于快速的查找和定位。
进一步的,所述存储方法的优化步骤如下:
步骤一、程序运行时首先判断申请的内存是否太大;
步骤二、如果上次分配的内存桶中有空余内存;
步骤三、如果有,则重新启用该桶完成内存分配,否则尝试查找有空余空间的桶,如果能够找到,在桶中完成分配即可;
步骤四、最后,则尝试重新分配新的桶,从而完成内存分配。
进一步的,所述存储方法的步骤一,如果申请的内存太大则直接调用系统的内存分配函数分配内存,否则先根据内存的大小选择一个特定大小的内存池,然后判断上次操作的内存桶的内存情况。
进一步的,所述存储方法的步骤二中,如果有空余内存,则直接在桶中分配内存即可,如果没有空余空间,则查找高速缓存中是否有空余桶。
进一步的,所述存储方法针对内存分配和释放方式做如下优化:
顺序分配内存,同时顺次释放内存;使用上次操作桶优先机制,每次分配时记住当前的桶,下次再分配时首先查找当前桶中是否还有空余内存,有则立刻分配,没有再做二叉树的查找。
进一步的,所述顺序分配内存,同时逆序释放内存。
进一步的,所述循环中反复分配释放内存:高速缓冲2桶内存,一个桶如果全空需要释放时,并不立刻释放,而是将它放入高速缓存中,只有高速缓存已满的时候才会释放,分配时先检查高速缓存。
综上所述,本发明具有以下有益效果:
1、能够快速的分配小对象的内存,效率达到Windows系统提供的内存分配的若干倍,在特殊情况下可能提高一或两个数量级;
2、在内存利用率上,应该至少和Windows系统提供的内存分配机制相当;
3、能够跟踪所有分配的对象的内存,无论是在调试环境还是在运行环境都能提供内存泄漏的报告;
4、能够提供内存分配和释放的自动化机制,简化程序的编写。
附图说明
图1是本实施例中一种水务系统的内存管理方法的优化流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
其中相同的零部件用相同的附图标记表示。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“底面”和“顶面”、“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。
参照图1所示,为本发明较优实施例中一种水务系统的内存管理方法,是按照大小来分类管理的,内部包含很多小的内存池,每个对应一组固定大小的内存分配和释放,每个固定分配大小的内存池,内部又是采用桶的方式来管理,每次分配一桶内存相当于255个内存单位,桶组织成平衡二叉树,方便于快速的查找和定位。
如图1所示,一种水务系统的内存管理方法的优化步骤如下:
本内存池是为了解决大量的小内存的分配和释放的占用空间和效率问题,太大的内存管理不在本内存池的范围内,否则本内存池如果适应所有大小的内存的管理,那么效率将会退化,接近系统内存的分配效率;
步骤一、程序运行时首先判断申请的内存是否太大,如果太大则直接调用系统的内存分配函数分配内存,否则先根据内存的大小选择一个特定大小的内存池,然后判断上次操作的内存桶的内存情况;
步骤二、如果上次分配的内存桶中有空余内存,则直接在桶中分配内存即可,如果没有空余空间,则查找高速缓存中是否有空余桶;
步骤三、如果有,则重新启用该桶完成内存分配,否则尝试查找有空余空间的桶,如果能够找到,在桶中完成分配即可;
步骤四、最后,则尝试重新分配新的桶,从而完成内存分配。
针对常用的内存分配和释放方式本专利做了优化,如下:
顺序分配内存,同时顺次释放内存;使用上次操作桶优先机制,每次分配时记住当前的桶,下次再分配时首先查找当前桶中是否还有空余内存,有则立刻分配,没有再做二叉树的查找;顺序分配内存,同时逆序释放内存;循环中反复分配释放内存:高速缓冲2桶内存,一个桶如果全空需要释放时,并不立刻释放,而是将它放入高速缓存中,只有高速缓存已满的时候才会释放,分配时先检查高速缓存。
本专利的内存管理具有以下优势:
1、能够快速的分配小对象的内存,效率达到Windows系统提供的内存分配的若干倍,在特殊情况下可能提高一或两个数量级;
2、在内存利用率上,应该至少和Windows系统提供的内存分配机制相当;
3、能够跟踪所有分配的对象的内存,无论是在调试环境还是在运行环境都能提供内存泄漏的报告;
4、能够提供内存分配和释放的自动化机制,简化程序的编写。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (7)

1.一种水务系统的内存管理方法,包括,其特征在于:按照大小来分类管理的,内部包含很多小的内存池,每个对应一组固定大小的内存分配和释放,每个固定分配大小的内存池,内部又是采用桶的方式来管理,每次分配一桶内存相当于255个内存单位,桶组织成平衡二叉树,方便于快速的查找和定位。
2.根据权利要求1所述的一种水务系统的内存管理方法,其特征在于:所述存储方法的优化步骤如下:
步骤一、程序运行时首先判断申请的内存是否太大;
步骤二、如果上次分配的内存桶中有空余内存;
步骤三、如果有,则重新启用该桶完成内存分配,否则尝试查找有空余空间的桶,如果能够找到,在桶中完成分配即可;
步骤四、最后,则尝试重新分配新的桶,从而完成内存分配。
3.根据权利要求2所述的一种水务系统的内存管理方法,其特征在于:所述存储方法的步骤一,如果申请的内存太大则直接调用系统的内存分配函数分配内存,否则先根据内存的大小选择一个特定大小的内存池,然后判断上次操作的内存桶的内存情况。
4.根据权利要求2所述的一种水务系统的内存管理方法,其特征在于:所述存储方法的步骤二中,如果有空余内存,则直接在桶中分配内存即可,如果没有空余空间,则查找高速缓存中是否有空余桶。
5.根据权利要求2所述的一种水务系统的内存管理方法,其特征在于:所述存储方法针对内存分配和释放方式做如下优化:
顺序分配内存,同时顺次释放内存;使用上次操作桶优先机制,每次分配时记住当前的桶,下次再分配时首先查找当前桶中是否还有空余内存,有则立刻分配,没有再做二叉树的查找。
6.根据权利要求5所述的一种水务系统的内存管理方法,其特征在于:所述顺序分配内存,同时逆序释放内存。
7.根据权利要求5所述的一种水务系统的内存管理方法,其特征在于:所述循环中反复分配释放内存:高速缓冲2桶内存,一个桶如果全空需要释放时,并不立刻释放,而是将它放入高速缓存中,只有高速缓存已满的时候才会释放,分配时先检查高速缓存。
CN202010292422.6A 2020-04-14 2020-04-14 一种水务系统的内存管理方法 Pending CN111522658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010292422.6A CN111522658A (zh) 2020-04-14 2020-04-14 一种水务系统的内存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010292422.6A CN111522658A (zh) 2020-04-14 2020-04-14 一种水务系统的内存管理方法

Publications (1)

Publication Number Publication Date
CN111522658A true CN111522658A (zh) 2020-08-11

Family

ID=71902614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010292422.6A Pending CN111522658A (zh) 2020-04-14 2020-04-14 一种水务系统的内存管理方法

Country Status (1)

Country Link
CN (1) CN111522658A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086449A1 (en) * 2003-08-16 2005-04-21 Samsung Electronics Co., Ltd. Method and apparatus for managing memory
CN101149703A (zh) * 2007-10-10 2008-03-26 中兴通讯股份有限公司 一种固定内存的管理方法
CN102945163A (zh) * 2012-10-29 2013-02-27 桂林电子科技大学 一种用于嵌入式系统的信号槽结构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086449A1 (en) * 2003-08-16 2005-04-21 Samsung Electronics Co., Ltd. Method and apparatus for managing memory
CN101149703A (zh) * 2007-10-10 2008-03-26 中兴通讯股份有限公司 一种固定内存的管理方法
CN102945163A (zh) * 2012-10-29 2013-02-27 桂林电子科技大学 一种用于嵌入式系统的信号槽结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩志刚: ""一个内存分配器的设计和实现"", 《万方数据》 *

Similar Documents

Publication Publication Date Title
CN107491345B (zh) 一种写入图片数据方法和分布式NewSQL数据库系统
CN100589087C (zh) 一种通用缓存的方法
CN106681829A (zh) 一种内存管理方法及系统
CN105808323A (zh) 一种虚拟机创建方法及系统
US10783163B2 (en) Instance-based distributed data recovery method and apparatus
CN101799808A (zh) 一种数据处理方法及其系统
CN111061788A (zh) 一种基于云架构的多源异构数据转换整合系统及其实现方法
CN105069134A (zh) 一种Oracle统计信息自动收集方法
CN102156700A (zh) 数据库的访问方法、装置及系统
CN102722432A (zh) 追踪内存访问的方法和装置
CN105450734A (zh) 分布式存储ceph的数据分布优化方法
CN102609467A (zh) 数据库连接管理方法和装置
CN105991478A (zh) 服务器资源分配方法及其系统
CN116842055A (zh) 用于物联网数据批流一体处理的系统及方法
CN105718319A (zh) 一种内存池版图解析方法和内存池装置
CN106033442A (zh) 一种基于共享内存体系结构的并行广度优先搜索方法
CN117933490B (zh) 一种机场场面拖曳调度优化方法、电子设备和存储介质
CN104573083A (zh) 一种地图缓存服务自动更新方法
CN111522658A (zh) 一种水务系统的内存管理方法
CN110659342A (zh) 基于信息提取特征的规则库自动制图综合处理方法及系统
BRPI0920319B1 (pt) método para acessar dados de magnitude da base de dados de serviços de rede inteligente e sistema e dispositivo para ele
CN115510134A (zh) 面向图-关系混合存储数据库的数据快速装载方法及系统
CN102981964B (zh) 数据存储空间的管理方法及系统
CN101719134A (zh) 一种信息控制系统及方法
CN105843735A (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

Application publication date: 20200811

RJ01 Rejection of invention patent application after publication