玖叶教程网

前端编程开发入门

glibc内存管理那些事儿(glibc和内核)

Linux内存空间简介

32位Linux平台下进程虚拟地址空间分布如下图:

强大的linux 排查问题工具集合,看看你用过了那些

Sysdig,strace、tcpdump、lsof ,busybox,perf

上面的的工具用完过的举手,能用完过的100%是一个高手了

简述

Linux下虚拟内存与物理内存之间的关系

在介绍

linux内存映射mmap原理分析(mmap内存映射文件)

一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。

原理

首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中一块大小相同的区域之间的一一对应,如图1中过程1所示。这种对应关系纯属是逻辑上的概念,物理上是不存在的,原因是进程的逻辑地址空间本身就是不存在的。在内存映射的过程中,并没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,具体到代码,就是建立并初始化了相关的数据结构(struct address_space),这个过程有系统调用mmap实现,所以建立内存映射的效率很高。

linux下的C开发8,三分钟弄懂静态链接和动态链接方式的区别

前面花了 7 节介绍如何搭建基本的 linux 下的 C语言开发环境,现在终于可以愉快的进行 C语言程序开发了。小编决定先介绍下 linux 下常用的一些库函数,一来可以熟悉 linux 中有哪些现成的轮子可用,二来可以锻炼一下我们的 C语言编程水平,毕竟这系列文章是面向 C语言初学者,而不是大牛的。

内存泄漏(增长)火焰图(内存泄漏产生的原因)

正文

当你的应用程序占用的内存不断地提升时,你不得不立即修复它。造成这种情况的原因可能是因为错误配置而导致的内存增长,也可能是因为软件bug引起的内存泄露。无论哪一种,由于垃圾回收机制开始积极响应(消耗CPU),一些应用的性能便会开始下降。一旦某个应用增长得太过庞大,那么其性能会受调页机制(swapping)的影响出现断崖式下降,甚至可能直接被系统kill掉(Linux系统的OOM Killer)。无论是内存泄漏还是内存增长,如果你的应用在扩展,你肯定想先看看其内部发生了什么,说不定其实是个很容易修复的小问题。但关键是你怎样才能做到呢?

ASCII 字符的点阵显示(ascii显示字符显示屏幕)


来源:百问网

作者:韦东山

本文字数:2108,阅读时长:4分钟

内存映射原理和内核是如何实现的,完全分析mmap原理

内存映射是一个很有趣的思想,我们都知道操作系统分为用户态和内核态,用户态是不能直接和物理设备打交道,如果我们用户空间想访问硬盘的一块区域数据,则需要两次拷贝(硬盘->内核->用户),但是内存映射的设计只需要发生一次拷贝,大大提高了读取数据的效率。那么内存映射的原理和内核是如何实现的呢?

揭秘进程地址空间:程序员必备的内存管理知识

在Linux系统中,每个进程都有自己的独立地址空间,程序员需要了解这个概念,才能更好地编写和调试程序。今天,我们将深入浅出地解析进程地址空间,带你领略内存管理的魅力。


基础知识-零拷贝技术(零拷贝使用场景)

高级I/O函数

主要介绍一下Linux下的一些高级I/O函数,可以用于服务器的效率优化,这里介绍的API都是“零拷贝技术”的具体实现,可以直接直接跳到下一部分的对零拷贝技术的浅析

readv函数和writev函数

readv将数据从文件描述符读取到分散的内存块中,即分散读;writev函数将多块分散的内存数据一并写入文件描述符,即集中写。

<< < 1 2 3 4 5 6 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言