首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
负能量迪不要
门头沟学院 C++
发布于陕西
关注
已关注
取消关注
@Dreams0000:
🍎06-C++面试之STL内存管理篇
[toc]0 前述针对于自己在秋招的面试中,对于CPP部分遇到的问题,其中大部分是以此为起点,你可以基于这些点,将自己对于CPP学习的知识点,串联起来。无论面试官,问这一类问题中的某个点,你都应该可以将这一个珠子串联到自己的知识链上来讲。这是一种拓展知识的能力。在此专栏下面个人校招记录:回馈牛客,对CPP做一个小小的总结。本部分关于CPP的STL的内存管理方式的点来展开即可,分别讨论普通的内存管理方式和STL的内存管理方式,以及STL内存管理方式本身的可改善的点。下面对应的是之前发布的个人校招其他公司面试总结,希望可以更好的帮到你✍✍总结:以代码的方式回看自己23届校招 | 或恐慌、疑惑、好在坚持!🌋大疆DJI 嵌入式 ✨MINIEYE自动驾驶 软开 深圳 实习 🌟百度 嵌入式软开 上海 2022.07🌳深圳杰理科技嵌入式 2022.07.26🌵深圳 诺瓦星云提前批 嵌入式 2022.08.06🌴哲库科技 提前批 2022.08.07🌲经纬恒润 自动驾驶嵌入式 1,2面 2022.08.15😥丰疆智能 嵌入式软开 1,2,3面+4面 2022.08.09🤷♂️一次让我略感疲惫的英文面试--吉利极氪 嵌入式软开🙆♂️♂️【深信服校招】笔试+面试 软件开发工程师🌾ZTE中兴软件工程师 一面+二面 2022.08.29🌱紫光同芯 嵌入式软开 芯片 2022.09.19🌄美团校招面经 嵌入式 1,2面 2022. 09🎋360 软开 一面+二面+ 2022.09这里是`CPP一些面试问题整理🥭01-C++面试之C++11新特性总结🍏02-C++面试之static关键字🍑03-C++面试之四种强制类型转换🍋04-C++面试之析构函数和构造函数🍐05-C++面试之多态底层实现:虚表和虚表指针🍎06-C++面试之STL内存管理篇🍅07-C++面试之从代码到可执行程序经历……未完待续1 普通的内存管理方式我们知道动态开辟内存是,要在堆上申请;1)如果说需要的频繁的话,就需要一次次在堆上开辟和释放内存,并且会造成内存碎片化,浪费内存空间(在申请一整个大块内存空间的时候,都是不连续的小碎片);2)且每次申请都要进行调用malloc和free操作,造成配置时的一些额外负担。以此,以效率著称的STL库,提出两级空间配置器。1)当一次申请的内存够大,超过128bytes时,就移交给第一级配置器处理,就是直接new和delete出一块大内存;2)当一次申请的空间小于128bytes,就使用二级配置器以内存池的形式进行管理。内存池的一个显著优点就是尽量避免内存碎片,使得内存分配效率得到提升。2 STL内存管理方式整体形式,维护16条free-list,对应各大小的内存块,从0~15号,内存最小8bytes,以8bytes逐渐递增,最大128bytes。传入的参数会自动将内存需求量上调至8的倍数(比如客户端需要30bytes,这边就自动商调至32bytes),找到32bytes所对应的内存大小的链表;查看是否为空,不为空的话就直接从该链表中取出一个分配给该请求,再将对应链表的指针向后移动一位。若对应的链表为空的话,进一步,先看看内存池是不是空的,不空,就从内存池里面分配1)先检查内存池剩余空间,够不够20个(默认)这样的(32bytes大小)的空间,若足够就直接拿出,将一个分配出去,剩下的挂载对应的free-list下,等待下次分配。2)如果不够20个大小,看够不够1个,够1个就先直接分配出去。再更新free-list,将内存池剩余的空间分配尽可能多的节点挂在其他free-list上面。3)若果池子剩余的空间一个都满足不了的话,先将内存池中剩余的空间挂在相应小内存的free-list上,然后,找老大"系统"😎给内存池分配空间。内存池空的话1)给内存池申请内存,使用malloc()从heap上申请内存(一次申请的内存大小为= 2*所需节点内存(8的倍数) * 20个 + 一段额外的空间),大约申请40块,一半拿来用,放在free-list上面;一般放在内存池中。 😯一个奇怪的提问:为什么会是乘以2的操作,就和vector,在存放满的时候,进行扩充一样,为什么是2倍,不是1.5倍这样的扩充:(曾经有个面试官这样问过)答:目前看来大致是,2对于计算机来说比较好处理一些,二进制直接使用10即可表示出来。2)假若系统中没有malloc出来,说明heap(系统)上也没有内存了,那就从其他大的free-list上借一个节点使用。如果系统上也没有找到,那就只能调用一级配置器。3 STL的一些缺点自由链表的管理问题,把所需要申请的内存自动调整到8的倍数。比如,你需要申请1个字节的话,也就给你8bytes,浪费,久而久之,也会造成内部碎片的问题。内存的使用过程中,所申请的内存会一块块挂在free-list上面,也不会还给操作系统,申请的内存只有在当前进程结束的时候,才会释放内存。1)开辟小内存开辟的太多,导致申请大内存的时候,就容易失败;2)申请的内存太多,不归还,别的进程想用但是没有,会引发问题。
点赞 3
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-16 12:13
门头沟学院 算法工程师
谁懂啊家人们!我就是一个状态机,在一次又一次焦虑中流转~
我就是个被焦虑所驱使的状态机——选方向选技术,找实习找工作,上班被裁员,每一个状态都在“怀疑自己—硬着学—新的焦虑触发”中循环滚动,到现在也没停过😭初始状态:方向选择的三岔路口,卷到失眠作为双非本科,真的被 “赛道选择” 逼疯:想冲算法?我看了牛客上的面经:985 硕,加顶会论文是标配,数学思维更是一道迈不过的坎;考公考研?又怕卷不到岸,更怕读完研还是卷不过年轻人,三年的时间成本怕一赌就输了;转研发?但纠结学 Java 还是 CPP还是GO还是Python还是前端还是嵌入式,听学长说 Java 岗位多但卷,其他的要么岗位少,要么难度高,对着电脑刷了3天知乎牛客b站小红书,最后闭眼选了 Jav...
站队站对牛:
人生多次机会把握
牛友的春节生活
点赞
评论
收藏
分享
02-17 20:27
清华大学 Java
如何在 TRAE 中安装 UI/UX Pro Max Skill?完整图文教程
UI/UX Pro Max Skill 是一个开源的 AI 设计增强插件,GitHub 已获得 22K+ Stars,能让 TRAE 生成的界面从"实习生水平"瞬间提升到"资深设计师水准"。本文提供保姆级安装教程。 什么是 UI/UX Pro Max Skill? UI/UX Pro Max Skill 是一个专为 AI 编程助手设计的开源技能库,GitHub 星标已突破 22,000+,并持续快速增长。它整理了: 67 种 UI 设计风格 - Glassmorphism, Claymorphism, Minimalism, Brutalism, N...
点赞
评论
收藏
分享
01-23 11:01
西安财经大学 算法工程师
状态又从筛选中变到了hr面,我还有机会吗😭
点赞
评论
收藏
分享
2025-12-30 23:38
吉首大学 Java
年后指的是过年后还是过了12月后啊?
年后指的是过年后还是过了12月后啊?我是27届双非找第一份实习,12月份找了一整个月,ssob上沟通了1700,交换60,但就1个面试还给挂了,其他要么已读不回,要么看了简历不回,要么线下面试但离太远去不了,搞的身心俱疲,最近都不想学习了,靠手机麻痹自己…听说年后岗位会多点,大佬们能给点意见吗?图片是我的打招呼语和简历
牛客解忧铺
点赞
评论
收藏
分享
02-20 12:58
已编辑
桂林电子科技大学 前端工程师
27前端双非找实习
各位佬,帮忙看看这份简历还有什么问题,目前大三想找三月份的前端开发实习,然后正在开一个项目想替换一下简历上的第二个项目,用Vue3+vite来替换一下,原来的太普通了,别的还有什么可以改进的么。
如何写一份好简历
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
773
2
...
关于租房
406
3
...
27届实习近一年的年度经历和总结
389
4
...
HTTP 和 HTTPS 区别
368
5
...
agent实习都干什么?prompt设计
257
6
...
得力嵌入式工程师 二面 面经
206
7
...
美团推荐算法一面
203
8
...
大三无实习
192
9
...
27前端双非找实习
182
10
...
Redis 的 Zset底层是怎么实现的?
173
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13776次浏览
168人参与
#
牛友们,签完三方你在忙什么?
#
137353次浏览
993人参与
#
牛客AI体验站
#
17849次浏览
302人参与
#
你最讨厌面试被问什么
#
1143次浏览
23人参与
#
担心入职之后被发现很菜怎么办
#
282473次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258831次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139354次浏览
609人参与
#
牛客租房专区
#
151360次浏览
1479人参与
#
秋招开始捡漏了吗
#
229447次浏览
1044人参与
#
秋招投递攻略
#
268776次浏览
2553人参与
#
九月了,是考研还是就业?
#
89198次浏览
556人参与
#
搜狐工作体验
#
4114次浏览
29人参与
#
机械人求职现状
#
33623次浏览
297人参与
#
这份实习,有没有动摇过你的职业方向?
#
2103次浏览
34人参与
#
我是XXX,请攻击我最薄弱的地方
#
61767次浏览
409人参与
#
用友工作体验
#
18082次浏览
151人参与
#
你的工资什么时候发?
#
57461次浏览
355人参与
#
今年秋招还有金九银十吗
#
75086次浏览
506人参与
#
你的实习什么时候入职
#
348065次浏览
2291人参与
#
职场吐槽大会
#
326181次浏览
2249人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务