写点什么

内存管理

0 人感兴趣 · 30 次引用

  • 最新
  • 推荐

LiteOS 内核源码分析:静态内存 Static Memory

​​​​​​摘要: 本文带领大家一起剖析了LiteOS静态内存模块的源代码,包含静态内存的结构体、静态内存池初始化、静态内存申请、释放、清除内容等。

小白也能看懂的操作系统之内存

用户头像
程序猿阿星4 月 25 日

操作系统是一门比较难啃的课程,同时操作系统知识对开发者们来说是十分重要,相信各位在学操作系统的时候,有太多的抽象难以理解的词汇与概念,把我们直接劝退,即使怀着满腔热血的心情学操作系统,不到 3 分钟睡意就突然袭来。

https://static001.geekbang.org/infoq/e5/e5b1cd61d88fc4f51069e0aac3a9bd42.jpeg?x-oss-process=image/resize,w_416,h_234

操作系统的内存管理(上)

用户头像
Arvin3 月 14 日

实现内存的分配,内存的回收等基本内存管理功能。提高内存的利用率和内存访问速度。

javascript 中的内存管理

用户头像
程序那些事3 月 1 日

在c语言中,我们需要手动分配和释放对象的内存,但是在java中,所有的内存管理都交给了java虚拟机,程序员不需要在手动进程内存的分配和释放,大大的减少了程序编写的难度。

Linux c 开发 - 内存管理器 ptmalloc

用户头像
赖猫2 月 23 日

了解ptmalloc内存管理器,就必须得先了解操作系统的内存布局方式。通过下面这个图,我很很清晰的可以看到堆、栈等的内存分布。

https://static001.geekbang.org/infoq/a4/a47eacaab2538dd41127ebf56b85cbe9.png?x-oss-process=image/resize,w_416,h_234

深入了解进程间通信:System V 信号量 + 共享内存

用户头像
ShenDu_Linux2020 年 12 月 2 日

前言:共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。

linux 后台开发必知的 linux 系统内存知识总结

用户头像
linux大本营2020 年 12 月 2 日

Linux 内存是后台开发人员,需要深入了解的计算机资源。合理的使用内存,有助于提升机器的性能和稳定性。本文主要介绍 Linux 内存组织结构和页面布局,内存碎片产生原因和优化算法,linux 内核几种内存管理的方法,内存使用场景以及内存使用的那些坑。从内存

https://static001.geekbang.org/infoq/89/898c0af930623da0e4e66323a417254d.jpeg?x-oss-process=image/resize,w_416,h_234

深入了解物理内存管理 - 伙伴 (Buddy) 算法

用户头像
ShenDu_Linux2020 年 11 月 30 日

伙伴关系的定义为:由一个母实体分成的两个各方面属性一致的两个子实体,这两个子实体就处于伙伴关系。在操作系统分配内存的过程中,一个内存块经常被分成两个大小相等的内存块,这两个大小相等的内存块就处于伙伴关系。它满足3个条件:两个块具有相同大小;

https://static001.geekbang.org/infoq/85/85b0cdcd0fc385a1383f68d5fd44a3c1.png?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- PoolChunk 实现原理 (jemalloc 3 的算法)

用户头像
binecy2020 年 11 月 15 日

本文主要分享Netty 4.1.52之前版本中,PoolChunk如何使用jemalloc 3算法管理内存。

https://static001.geekbang.org/infoq/85/85b0cdcd0fc385a1383f68d5fd44a3c1.png?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- PoolSubpage 实现原理

用户头像
binecy2020 年 11 月 8 日

前面文章说了PoolChunk如何管理Normal内存块,本文分享PoolSubpage如何管理Small内存块。

https://static001.geekbang.org/infoq/4e/4e4042452b271327748c10af6a370a43.jpeg?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- 内存池与 PoolArena

用户头像
binecy2020 年 11 月 1 日

本文主要分析PoolArena的作用与实现。

https://static001.geekbang.org/infoq/4e/4e4042452b271327748c10af6a370a43.jpeg?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- 内存对齐类 SizeClasses

用户头像
binecy2020 年 10 月 29 日

在学习Netty内存池之前,我们先了解一下Netty的内存对齐类SizeClasses,它为Netty内存池中的内存块提供大小对齐,索引计算等服务方法。

https://static001.geekbang.org/infoq/98/98b1960dfd3c1159bfe297d4328791f8.jpeg?x-oss-process=image/resize,w_416,h_234

Go 语言内存管理三部曲(三)图解 GC 算法和垃圾回收原理

用户头像
网管2020 年 10 月 22 日

白话Go语言的垃圾回收机制、图解Go语言GC的三色标记清楚算法。

https://static001.geekbang.org/infoq/f6/f61f78946385ba222f13c929c8aa6f4c.jpeg?x-oss-process=image/resize,w_416,h_234

Go 语言内存管理三部曲(二)解密栈内存管理

用户头像
网管2020 年 10 月 17 日

Go应用程序运行时,每个goroutine都维护着一个自己的栈区,这个栈区只能自己使用不能被其他goroutine使用。栈区的初始大小是2KB(比x86_64架构下线程的默认栈2M要小很多),在goroutine运行的时候栈区会按照需要增长和收缩

https://static001.geekbang.org/infoq/55/5522c7d3731e29ecc953ed59656d404f.png?x-oss-process=image/resize,w_416,h_234

Go 语言内存管理三部曲(一)内存分配原理

用户头像
网管2020 年 10 月 12 日

现代高级编程语言管理内存的方式分为两种:自动和手动,像C、C++ 等编程语言使用手动管理内存的方式,工程师编写代码过程中需要主动申请或者释放内存;而 PHP、Java 和 Go 等语言使用自动的内存管理系统,有内存分配器和垃圾收集器来代为分配和回收内存。

https://static001.geekbang.org/infoq/cc/cc69cbf9afdbaf4cd20bd2173b136484.png?x-oss-process=image/resize,w_416,h_234

Hazelcast IMDG 带你瞬间进入内存计算的时代

用户头像
张磊2020 年 10 月 8 日

Hazelcast是一个平台性的分布式内存网格计算框架引擎,可以实现基于分布式内存计算的诸多场景的应用框架 , 它作为一个开源可内嵌式内存网格计算框架,通过简单的配置, 就可以轻松的让你的应用拥有弹性可扩展的分布式内存计算能力,可以带你瞬间进入内存计

https://static001.geekbang.org/infoq/d0/d0a698fcf1927768b92e69450828cfad.jpeg?x-oss-process=image/resize,w_416,h_234

Rust 所有者被修改了会发生什么?

用户头像
袁承兴2020 年 9 月 25 日

写C++的时候,指针都在明面上。到了Rust,指针在很多场合都藏了起来。但遗憾的是,它们并不是真的想被遗忘掉,而是在和你躲猫猫,最终你不得不把它们揪出来,游戏才能继续。

高频面试题——你真的搞懂物理内存与虚拟内存了吗

用户头像
大柚子2020 年 8 月 24 日

虚拟内存是什么? 这是一个面试中经常被提到的问题,大多数人可能只记住了内存地址映射和缺页置换,但你真的搞懂了为什么会有虚拟内存了吗,它存在的作用是什么呢?

https://static001.geekbang.org/infoq/54/54e7b59ed1b5eac3d0f665d1463e555b.jpeg?x-oss-process=image/resize,w_416,h_234

C++ 借来的资源,如何还的潇洒?

用户头像
小林coding2020 年 8 月 17 日

所谓的资源就是,一旦用了它,将来必须还给系统。如果不是这样,糟糕的事情就会发生。

GaussDB for DWS:内存自适应控制技术总结

用户头像
华为云开发者社区2020 年 7 月 15 日

在SQL语句复杂、处理数据量大的AP场景下,单个查询对内存的需求越来越大,多个语句的并发很容易将系统的内存吃满,造成内存不足的问题。为了应对这种问题,GaussDB for DWS引入了内存自适应控制的技术,在上述场景下能够对运行的作业进行内存级的管控,避免高

https://static001.geekbang.org/infoq/c8/c85bfa9480db97cd5feef5a420f4a9c2.jpeg?x-oss-process=image/resize,w_416,h_234

Rust 所有权,可转可借

用户头像
袁承兴2020 年 7 月 14 日

堆变量的生命周期如何才能跨越原有作用域呢?

https://static001.geekbang.org/infoq/2c/2c010b034e999831a2a2fe68c74f7a6f.png?x-oss-process=image/resize,w_416,h_234

图说前端 - 使用 Atomics 避免 SharedArrayBuffers 中的 race conditions(3/3)

用户头像
梦见君笑2020 年 7 月 11 日

在 上一篇文章 ,我谈到了使用 SharedArrayBuffers 如何导致竞态条件(race conditions)。这使得使用 SharedArrayBuffers 变得困难。我不建议应用程序开发人员直接使用 SharedArrayBuffers。

https://static001.geekbang.org/infoq/20/2056db0ddef67cd86febaec985077722.png?x-oss-process=image/resize,w_416,h_234

图说前端 -ArrayBuffers 和 SharedArrayBuffers(2/3)

用户头像
梦见君笑2020 年 7 月 11 日

在 上一篇文章 ,我解释了像JavaScript这样的自动内存管理语言如何与内存一起工作,我还解释了像C语言这种手动内存管理如何工作。

https://static001.geekbang.org/infoq/53/531da4c5cc5e19a161d3b53122bf684b.jpeg?x-oss-process=image/resize,w_416,h_234

管理堆内存,Rust 是怎么做的?所有权!

用户头像
袁承兴2020 年 7 月 8 日

本篇谈下Rust语言的核心概念:所有权。这个概念是支撑Rust在编译期做内存安全检查的核心机制,也正是因为这个特性,我们认为Rust是内存安全的底层语言。

https://static001.geekbang.org/infoq/f5/f5a99adb6d0f81976abc801ad9a0bf81.jpeg?x-oss-process=image/resize,w_416,h_234

真棒! 20 张图揭开内存管理的迷雾,瞬间豁然开朗

用户头像
小林coding2020 年 6 月 30 日

内存管理还是比较重要的一个环节,理解了它,至少对整个操作系统的工作会有一个初步的轮廓。

https://static001.geekbang.org/infoq/e1/e1577e34d5c3a70668264bd2504aea0d.jpeg?x-oss-process=image/resize,w_416,h_234

Go: 内存管理和分配

用户头像
陈思敏捷2020 年 6 月 14 日

当不再使用内存时,标准库会自动执行Go的内存管理即从分配到回收。尽管开发者不需要处理它,但是Go的底层管理进行了很好的优化并且充满了有趣的概念。

内存管理_内存管理资料文章-InfoQ写作平台