
内存
文章平均质量分 86
boazheng
这个作者很懒,什么都没留下…
展开
-
ARM64 Linux内核页表的块映射
内核文档Documentation/arm64/memory.rst描述了ARM64 Linux内核空间的内存映射情况,应该是此方面最权威文档。以典型的4K页和48位虚拟地址为例,整个内核空间的虚拟地址分布如下:从ffff000000000000到ffff7fffffffffff是一段针对物理地址的线性映射区,最大支持128TB的物理地址空间,这一段地址非常类似ARM32的low memory映射区。我们看看这种情况下的页表,我们既可以用最终的【20:12】对应的PTE映射项,以4K为单位,转载 2021-02-16 08:18:52 · 1024 阅读 · 0 评论 -
谈谈内存压缩那些事
1. 技术背景说到压缩这个词,我们并不陌生,应该都能想到是降低占用空间,使同样的空间可以存放更多的东西,类似于我们平时常用的文件压缩,内存压缩同样也是为了节省内存。尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢..转载 2021-02-16 08:14:01 · 1943 阅读 · 0 评论 -
性能优化-放开那片内存
性能优化是一个常有的事情,通常来说 不要过早优化-当你没有性能问题时,不需要过早考虑优化,当然对于一些代价很小,收益却很大的手段可以考虑做进来,例如最常见的就是根据业务需求选择合适的数据结构。 不要过度优化。优化都是有目标的,比如你需要达到多少TPS,那么你按照这个目标去优化即可,有些优化虽然能否提升性能,但可能对代码的可维护性造成破坏。 本人对此没有过多涉猎,仅分享工作中接触到的一些内存。内存性能问题有很多方面会造成性能问题,例如: 业务流程设计不合理,导致很多没有必要的转载 2021-02-16 08:07:01 · 646 阅读 · 0 评论 -
18张图揭秘高性能Linux服务器内存池技术是如何实现的
大家生活中肯定都有这样的经验,那就是大众化的产品都比较便宜,但便宜的大众产品就是一个词,普通;而可以定制的产品一般都价位不凡,这种定制的产品注定不会在大众中普及,因此定制产品就是一个词,独特。有的同学可能会有疑问,你不是要聊技术吗?怎么又说起消费了?原来技术也有大众货以及定制品。通用 VS 定制作为程序员(C/C++)我们知道申请内存使用的是malloc,malloc其实就是一个通用的大众货,什么场景下都可以用,但是什么场景下都可以用就意味着什么场景下都不会有很高的性能。malloc转载 2021-02-16 08:04:39 · 272 阅读 · 0 评论 -
Linux如何调试内存泄漏
内存泄漏是指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。我们平时开发过程中不可避免的会遇到内存泄漏问题,你是如何排查的呢?估计你是使用下面这几个工具吧? valgrind mtrace dmalloc ccmalloc memwatch debug_new 这里程序喵向大家推荐新的一个排查内存泄转载 2021-02-16 07:59:15 · 523 阅读 · 0 评论 -
Linux内存机制以及手动释放swap和buffer和cache
本文介绍linux内存机制、虚拟内存swap、buffer/cache释放等原理及实操。一、什么是linux的内存机制?二、linux什么时候开始使用虚拟内存(swap)?三、怎么释放内存?四、怎么释放swap?一、什么是linux的内存机制?我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在li...转载 2021-02-16 07:45:52 · 673 阅读 · 0 评论 -
为什么 Linux 默认页大小是 4KB
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。我们都知道 Linux 会以页为单位管理内存,无论是将磁盘中的数据加载到内存中,还是将内存中的数据写回磁盘,操作系统都会以页面为单位进行操作,哪怕我们只向磁盘中写入一个字节的数据,我们也需要将整个页面中的全部数据刷入磁盘中。Linux 同时支持正常大小的.转载 2021-02-16 07:44:09 · 1519 阅读 · 0 评论