首页 > 编程知识 正文

什么是内存,票据池的概念

时间:2023-05-04 07:02:02 阅读:163183 作者:4090

内存池化技术3358www.Sina.com/是计算机技术中常用的设计模型,包括。 常用的池技术包括内存池、线程池和连接池,使用最多的是内存池和线程池。

内存池程序中需要经常使用的核心资源先申请出来,放到一个池内,由程序自己管理,这样可以提高资源的使用效率,也可以保证本程序占有的资源数量通常习惯使用API (如new/delete/malloc/free )申请分配和释放内存。 因此,长时间运行程序会导致请求的内存块大小不稳定,从而导致频繁使用会产生大量内存碎片,并降低程序和操作系统的性能。内存池(Memory Pool)是一种动态内存分配与管理技术

为什么需要内存池? 解决内存碎片问题

假设系统按顺序分配了16、16、4、8和8个字节,释放了16和8个字节并返回给系统。 (红色表示还没有返还给系统。 )然后,堆空间当前将16字节空间和8字节空间分开。 这是因为如果用户尝试申请24字节的空间,系统将无法为用户分配连续的空间。 这就是内存碎片的问题。

申请效率问题举个例子:

你作为课程的代表每天去给老师交作业。 你一次去交xdddxtd的作业。 这样的话,你只需要跑一次就能解决问题。 但是如果有同学忘记交了,交作业后,他们就零散地交给你,你得一次又一次地去给老师交作业。 效率变低了,频繁地去给老师交作业。 那么,完成一次xdddxtd的工作一定能更有效率。

内存池则是在真正使用内存之前,先申请分配一大块内存(内存池)留作备用,当我们申请内存时,从池中取出一块动态分配的内存,释放内存时,再将我们使用的内存释放到我们申请的内存池内,再次申请内存池也可以再取出来使用。并且,尽量与周边的内存块合并。若内存池不够时,则自动扩大内存池,从操作系统中申请更大的内存池

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。