关于 Free 的 buffers / cached

2023-10-10 04:18
文章标签 free buffers cached

本文主要是介绍关于 Free 的 buffers / cached,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Free 命令事实上是读取 /proc/meminfo 里的 Buffers 和 Cached 来表示 buffers / cached。

参考:

内核的 Documentation/filesystems/proc.txt:

     Buffers: Relatively temporary storage for raw disk blocks
              shouldn't get tremendously large (20MB or so)
      Cached: in-memory cache for files read from the disk (the
              pagecache).  Doesn't include SwapCached


这里可以看到 Buffers 是指磁盘块设备的元数据(不应该太大)

而 Cached 是指 page cache。


代码可以参考:

Buffers:

long nr_blockdev_pages(void)
{struct block_device *bdev;long ret = 0;spin_lock(&bdev_lock);list_for_each_entry(bdev, &all_bdevs, bd_list) {ret += bdev->bd_inode->i_mapping->nrpages;}spin_unlock(&bdev_lock);return ret;
}


cached:
	cached = global_page_state(NR_FILE_PAGES) -total_swapcache_pages - i.bufferram;


这篇关于关于 Free 的 buffers / cached的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177884

相关文章

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

delphi : 窗体的close,free,destroy的区别

一、我用application.create(TForm2,Form2)语句,创建了Form2,可是调用了Form2.close后,重新调用Form2.show. 刚才所创建的Form2仍然存在。问为了节约资源,应该怎样使用close,free,destroy. 三者的关系是什么? 1、Action:=caFree。 2、 with TForm1.Create(Application) do

C语言动态内存空间分配(malloc,calloc,realloc,free)

为了代码观感美观,我将代码部分的注释删了 malloc #include<stdio.h>#include<stdlib.h>#include<errno.h>//使用动态内存分配函数的注意事项://1.要判断指针是否为空指针,如果没有成功开辟动态内存空间,则不能继续使用该指针//2.分配的动态内存空间的数量要大于等于赋值的元素的数量,不能造成动态内存的越界访问//3.动态内存空间中

【SPOJ】1825 Free tour II 点分治

传送门:【SPOJ】1825 Free tour II 题目分析:敲了两遍。。。 本题是论文题,具体见漆子超论文《分治算法在树的路径问题中的应用》。 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。因

阅读笔记(五)多线程无锁的C++实现《Lock-Free Data Structures》

1. 前言   本文介绍使用C++实现多线程中无锁算法的实现和优化过程。 2. 无锁&CAS   在多线程程序中,加锁是一种必要的手段,由于保证数据操作的正确性(原子性)。但是这也在很多时候带来了性能的极度下降,因为所有共享数据的操作均需要加锁,有些时候会严重影响性能,比如当读键盘或者一些较慢的I/O操作时,锁会延误了其他线程的操作。更糟糕的是,不当操作可能会带来死锁。   首先介绍最经典

malloc/free 和 new/delete的区别

malloc/free 和 new/delete 是 C++ 中两种不同的动态内存管理方法,它们有一些关键的区别: 1. 内存分配和释放机制 malloc 和 free: 函数: malloc 是一个 C 标准库函数,用于从堆中分配指定大小的原始内存块。它返回一个 void* 指针,指向分配的内存块的起始位置。free 用于释放由 malloc 分配的内存,防止内存泄漏。初始化: mallo

使用Protocol Buffers传输数据

使用 Google Protocol Buffers(ProtoBuf)与 Kafka 结合来定义和传输数据,可以确保传输数据的结构性、可扩展性和高效性。以下是一个简单的步骤指南,帮助你实现生产者和消费者。 1. 定义 ProtoBuf 消息格式 首先,你需要定义传输内容的消息格式。 示例:message.proto syntax = "proto3";message ExampleMes

Protocol Buffers

Protocol Buffers 下载安装 https://github.com/protocolbuffers/protobuf 将下载的文件解压缩后放在C盘下的Program File下,并设置bin中protoc.exe的环境变量 语法 syntax = "proto3"; // 使用版本为proto3,默认为proto2,第一行不能为空且不能为注释option go_pac

浅谈free函数的用法

free() 函数一般是用来释放 malloc()函数或者是calloc函数申请的内存空间. 但是有一点值得注意的是,比如说 int * p; p = (int *) malloc (sizeof (int)); free (p); 虽然用了free()函数释放了内存但是p指针依然指向着当时给它分配的内存空间, 所以一般在free(p);后面加上p = NULL;这也是一个比较好的

kaggle平台free使用GPU

1、注册 请保证在【科学上网】条件下进入如下操作,只有在注册账户和手机号验证时需要。 step1:注册账户 进入kaggle官网:https://www.kaggle.com/,点击右上角【Register】进入注册页面 最好选择使用邮箱注册(!!!如果你先用goole注册,然后改成其他邮箱,再用其他邮箱登录时会报错,需要重新找回密码) 输入【邮箱】、【密码】和【用户名】后,勾选