news 2026/7/6 23:52:13

34、内存管理全解析:从基础到高级应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
34、内存管理全解析:从基础到高级应用

内存管理全解析:从基础到高级应用

1. 页面错误与内存映射

在程序环境初始化后,会遇到一定数量的小页面错误。例如,初始化后遇到 172 个小页面错误,调用getrusage(2)时又会遇到 14 个(这些数字会因架构和 C 库版本而异)。当向内存填充数据时,页面错误数量会增加,如 442 - 186 = 256,这与缓冲区大小有关,1 MiB 的缓冲区正好是 256 页。第二次调用memset(3)时不再产生页面错误,因为所有页面都已完成映射。

页面错误分为小错误和大错误:
-小页面错误:内核只需找到一个物理内存页并将其映射到进程地址空间。
-大页面错误:当虚拟内存映射到文件时会发生,例如使用mmap(2)。此时,内核不仅要找到内存页并映射,还要从文件中读取数据填充该页,因此在时间和系统资源上的开销更大。

2. 进程内存映射

可以通过/proc文件系统查看进程的内存映射。以 PID 为 1 的init进程为例:

# cat /proc/1/maps 00008000-0000e000 r-xp 00000000 00:0b 23281745 /sbin/init 00016000-00017000 rwxp 00006000 00:0b 23281745 /sbin/init 00017000
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 8:22:02

前端主题切换实战:用 Scss !default 与 Less 覆盖轻松搞定多皮肤

前端主题切换实战:用 Scss !default 与 Less 覆盖轻松搞定多皮肤前端主题切换实战:用 Scss !default 与 Less 覆盖轻松搞定多皮肤为什么前端开发者总在为换肤头疼Scss 和 Less 在主题管理中的角色初探!default 到底是什么?Scss 中的默认值魔法…

作者头像 李华
网站建设 2026/7/7 17:10:04

37、用户按键监控与审计指南

用户按键监控与审计指南 在大多数大型机构中,至少偶尔会有监控用户操作的需求。比如对拥有系统根访问权限或其他管理类型账户(如 Oracle)的用户按键进行审计。现场承包商可能带来特定安全风险,通常新应用引入时,会有一两名承包商在现场进行安装、故障排除和人员培训。 1…

作者头像 李华
网站建设 2026/7/7 20:07:48

44、浮点数计算与数字进制转换脚本

浮点数计算与数字进制转换脚本 1. 创建 float_average.ksh 脚本 1.1 修改已有脚本 我们可以在之前的加法脚本基础上做一些小修改,来实现对一系列数字求平均值的功能。主要修改如下: - 添加变量 TOTAL_NUMBERS :为了计算平均值,我们需要知道数字列表中数字的总数,这…

作者头像 李华
网站建设 2026/7/7 4:26:29

Python面向对象编程:从思想到实践的全面指南

前言 在Python编程世界里,面向对象编程(OOP)是一种至关重要的编程思想,它能帮助我们更高效地开发复杂项目、提升代码可维护性。本文将从面向对象编程思想入手,逐步讲解核心概念、关键操作与实战技巧,带你轻…

作者头像 李华
网站建设 2026/7/7 14:22:31

字节跳动开源BFS-Prover-V2-32B:Qwen2.5驱动的Lean4定理证明新突破

核心概述 【免费下载链接】BFS-Prover-V2-32B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/BFS-Prover-V2-32B 字节跳动Seed团队最新发布的BFS-Prover-V2-32B,是一款基于Qwen2.5-32B大模型架构开发的Lean4战术生成器。该模型创新性地融合了…

作者头像 李华