寄存器 内存

迁移类型与内存碎片

前言 在伙伴系统中长时间的内存分配之后很容易造成内存碎片,即物理内存总量不少但是无法合并为大的连续内存块。而在现代CPU中提供了huge page的可能,可以分配超大块的page,在TLB中使用更少级的地址转换操作。一个page覆盖了更大的地址范围,大幅度的提高了TLB的命中概率。对于内存密集型应用 ......
碎片 内存 类型

基于 Linux、C++实现的高性能内存池

1.引入内存池的意义 内存池(Memory Pool)是一种内存分配方式,又被称为固定大小区块规划(fixed-size-blocks allocation)。通常我们习惯直接使用new、malloc等API申请分配内存,但是这种方式非常容易产生内存碎片,早晚都会申请内存失败。并且在比较复杂的代码或 ......
高性能 内存 Linux

伙伴系统(四)内存释放流程

前言 伙伴系统的内存释放API分析,基于Linux 2.6.25。 对外封装的内存释放API分为两类,free_page和free_pages以虚拟地址为参数,__free_page和__free_pages以page指针为参数,可以使用virt_to_page实现虚拟地址到page指针的转化,最终 ......
流程 内存 伙伴 系统

伙伴系统的内存分配流程

前言 伙伴系统的内存分配API解析,基于Linux 2.6.25。 GFP_MASK GFP是get free page的缩写,GFP_MASK是一系列内存分配的掩码,指导伙伴系统寻找合适的内存块进行分配,同时在分配过程中按照掩码的指示进行内存相关的操作,比如内存回收、分配失败后的行为等。 以下四个 ......
流程 内存 伙伴 系统

ZONE_MOVABLE虚拟内存区域

前言 ZONE_MOVABLE是一个虚拟内存域,ZONE_MOVABLE内存区域的范围实际上会覆盖高端内存或者NORMAL内存。 ZONE_MOVABLE有两个作用,其一是解决内存碎片问题,将内存域分为可移动和不可移动的,避免不可移动内存处于可移动内存块之间。其二是用于虚拟内存的热插拔,容器动态的进 ......
ZONE_MOVABLE 内存 区域 MOVABLE ZONE

编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小

[10:03:38 root@centos8 ~]#cat systeminfo.sh#!/bin/bash​# # Copyright (C) 2021 IEucd Inc. All rights reserved.## 文件名称:systeminfo.sh# 创 建 者:TanLiang# 创建 ......
大小 主机 版本 系统 内核

从GPU的内存访问视角对比NHWC和NCHW

NHWC和NCHW是卷积神经网络(cnn)中广泛使用的数据格式。它们决定了多维数据,如图像、点云或特征图如何存储在内存中。 NHWC(样本数,高度,宽度,通道):这种格式存储数据通道在最后,是TensorFlow的默认格式。 NCHW(样本数,通道,高度,宽度):通道位于高度和宽度尺寸之前,经常与P ......
视角 内存 NHWC NCHW GPU

[架构之路-25]:目标系统 - 系统软件 - bootloader uboot内存映射与启动流程

原文:https://blog.csdn.net/HiWangWenBing/article/details/127062057 目录 第1章 uboot概述 1.1 概述 1.2 内存映射(案例) 1.3 uboot在嵌入式系统启动中的位置 第2章 uboot启动流程(源码分析) 2.1 入口函数 ......
系统 bootloader 架构 流程 内存

进程栈、线程栈、内存栈、中断栈

前言 虽然我也很想讲X86_64体系,无奈这样的资料的确不多,因此本文还是本着学习的态度,探究早已经过时的X86体系。 本文转载自此文,该博主对栈的数据结构、栈的作用等进行了阐述,其中涉及了函数栈帧的相关知识,这部分内容我没有转载,我仅仅转载了我感兴趣的进程栈,线程栈等部分,并在其中融入了自己的理解 ......
线程 进程 内存

10.3 调试事件转存进程内存

我们继续延申调试事件的话题,实现进程转存功能,进程转储功能是指通过调试API使获得了目标进程控制权的进程,将目标进程的内存中的数据完整地转存到本地磁盘上,对于加壳软件,通常会通过加密、压缩等手段来保护其代码和数据,使其不易被分析。在这种情况下,通过进程转储功能,可以将加壳程序的内存镜像完整地保存到本 ......
进程 内存 事件 10.3 10

"堆"(Heap)和"栈"(Stack)两个重要的内存管理概念

在Delphi和其他编程语言中,"堆"(Heap)和"栈"(Stack)是两个重要的内存管理概念,用于存储和管理程序中的数据和变量。它们有不同的特性和用途: 堆(Heap): 堆是一块动态分配的内存区域,用于存储对象、数据结构和变量。 堆内存的分配和释放是由程序员手动控制的,通常使用New和Disp ......
quot 内存 概念 两个 Stack

10.3 调试事件转存进程内存

我们继续延申调试事件的话题,实现进程转存功能,进程转储功能是指通过调试API使获得了目标进程控制权的进程,将目标进程的内存中的数据完整地转存到本地磁盘上,对于加壳软件,通常会通过加密、压缩等手段来保护其代码和数据,使其不易被分析。在这种情况下,通过进程转储功能,可以将加壳程序的内存镜像完整地保存到本... ......
进程 内存 事件 10.3 10

FreeRTOS 原理 --- heap 堆内存的使用

FreeRTOS一共提供了5种申请内存的方案 heap1 只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高 使用场景:不需要频繁申请内存 heap2 能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表管 ......
FreeRTOS 原理 内存 heap

Java之对象内存分析

相信大家有时候在读代码的时候应该都会有以下情况: 这个对象本定义在上面,乱跑什么?怎么又到下面去了? 欸?我明明改变了这个对象的值,怎么没变呢? 要想搞清楚某一对象在程序中是怎样活蹦乱跳的,首先我们要对其内存的状况要有些了解。 在java中,类是属于引用数据类型,而引用数据类型最大的难点在于数据的内 ......
对象 内存 Java

达梦数据库使用内存监控指导

达梦数据库使用内存监控指导 2.1 如何判断内存池空闲还是紧张v$mem_pool 可以查看所有内存池的使用信息。当前系统的内存池总大小可以通过以下语句查询,单位是 M: select name, --内存池名称is_shared, --是否是共享的is_overflow, --是否用到了备份池or ......
内存 数据库 数据

10.1 调试事件读取寄存器

当读者需要获取到特定进程内的寄存器信息时,则需要在上述代码中进行完善,首先需要编写`CREATE_PROCESS_DEBUG_EVENT`事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过`lpStartAddress`属性获取到当前程序的入口地址,并通过`SuspendThrea... ......
寄存器 事件 10.1 10

内存分配粒度

分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200) 分配粒度和内存页面大小x86处理器平台的分配粒度是64K,32位CPU的内存页面大小是4K,64位是8K,保留内存地址空 ......
粒度 内存

VMWare 虚拟机 CPU 设置里针对 CPU 的虚拟化 IOMMU(IO 内存管理单元) 选项功能介绍

虚拟化技术在现代计算中扮演着关键角色,使多个虚拟机(VM)能够在单个物理主机上同时运行。VMware作为虚拟化技术的领导者之一,提供了许多高级设置选项,其中之一是“虚拟化 IOMMU(IO 内存管理单元)(I)”选项。在本文中,我将详细介绍这个选项的作用,并提供示例来说明其实际应用。 1. 虚拟化 ......
CPU 单元 内存 功能 VMWare

1449元起 美商海盗船统治者泰坦DDR5内存上架:6000-7200MHz可选

美商海盗船(Corsair)推出了统治者泰坦DDR5内存,频率可选6000-7200MHz,首发1449元起。 据介绍,统治者泰坦DDR5内存有着简洁、优雅的造型,采用了锻造铝结构,并得到美商海盗船荣获专利的DHX散热技术的支持,提升了超频潜力。 同时,内存顶部的LED灯条有着11颗可单独寻址的RG ......
美商 海盗船 统治者 元起 海盗

win32-IDTR中断描述符寄存器

48位寄存器IDTR: IDTR的高32位指定了IDT在内存中的基址(线性地址) , 低16位指定了IDT的长度, 相当于指定了可以支持的中断数量 ......
寄存器 IDTR win 32

C++类内存分布+ Studio工具

书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。 工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 ......
内存 工具 Studio

[C语言]动态内存分配遇上函数-经典错误纠错

题目来自nice2016校招笔试题 直接完整代码 #include <stdio.h> #include <stdlib.h> #include <string.h> void GetMemory(char* p) //申请内存 { p = (char*)malloc(100); } void Te ......
函数 内存 错误 语言 经典

oracle cloud一台小内存机器yum install/update OutofMemory的问题排查

一台Oracle Cloud Free Tier的机器,说是有1G内存,但free 一下只有680M,swap有1384M。yum install curl 就一直卡,过了一会就被Kill掉了。查看/var/message ,显示oom killer,yum被kill掉,内存不足。 在网上找了一些, ......
OutofMemory 内存 机器 install oracle

Python内存管理&垃圾回收机制

Python内存管理&垃圾回收机制 引用计数器为主,标记清除和分代回收为辅 (循环垃圾回收器) + 缓存机制 一、引用计数器 1、环状双向链表 refchain 在python程序创建的任何对象都会放在rechain双向链表中。 name = '七落' age = 18 hobby = ['篮球', ......
机制 内存 垃圾 Python amp

C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题

C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题 在指针被delete之后,此时指针被称为空悬指针或者悬垂指针,即指向一块曾经保存数据对象,但现在已经无效的内存的指针。 在C++编程中,当我们delete一个指针后,指针所指向的堆地址空间便被释放,指针值变成无效,该内存可以用于之后的 ......
指针 所指 内存 delete 问题

QT QPixmap QImage内存泄漏

无论是在代码中还是在UI中设置icon都会产生内存泄漏 大概看了下,好像是QPixmap的data_ptr的引用计数,到不了1/0(查看引用计数,释放后,理论上应回到1) 试了下,仅以下两种方式不会产生内存泄漏: 1、从 XPM加载: img = QPixmap(result); //result为 ......
内存 QPixmap QImage QT

内存不足录音很危险

上午刚查了一顿iPhone录音到满内存保存之后文件丢失,中午iqoo录音看的58min点击保存之后,时间长度变为00:00 算是验证了一遍,录音录到满内存,文件丢失看来几乎必然 猜测是录音到中间时没有内存,所以58min只保存了1.48MB,而且不能直接播放应该是没有文件结尾,不过明明内存满了但一直 ......
内存

C++内存模型

目录C++内存模型存储持续性内存分配位置链接性作用域对于函数 C++内存模型 存储持续性 C++存储持续性有以下类别: 自动存储持续性:在函数定义中声明的变量(包括函数参数)。 静态存储持续性:在函数定义外定义的变量和使用关键字static定义的变量。 线程存储持续性(C++11):使用关键字thr ......
模型 内存

mmap:Python内存映射文件操作

# 前言 [内存](https://so.csdn.net/so/search?q=%E5%86%85%E5%AD%98&spm=1001.2101.3001.7020)映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用 ......
内存 文件 Python mmap

nginx.conf被删除后如何通过内存导出nginx.conf文件

问题 上午同事反馈,nginx下conf/nginx.conf 文件是空的. 解决 m1: 通过nginx内存转储出来nginx.conf 01、查看nginx master进程 02、查看内存映射是否存在heap类型 cat /proc/x/maps|grep heap (空空如也) 03、如果存 ......
nginx conf 内存 文件