- 博客(50)
- 收藏
- 关注
原创 物理内存组织与分配的核心概念
这些层级结构共同实现高效、灵活的内存管理,平衡性能、碎片控制和硬件兼容性。是描述物理内存组织与分配的核心概念。在 Linux 内核内存管理(尤其是。
2025-02-28 21:34:42
861
原创 应用中的 Crash 和 ANR
ANR 是指应用的主线程(UI 线程)在规定时间内未能完成用户操作或系统任务,导致应用被系统判定为无响应。开发者需分别针对代码健壮性(Crash)和主线程性能(ANR)进行优化,同时关注系统资源管理和异常处理的全面性,才能提升用户体验。应用因未处理的异常(如空指针、内存溢出)或系统强制终止(如 OOM)而突然退出,用户通常会看到“应用已停止”的提示。Crash 是由于应用在运行时发生了无法处理的异常或错误,导致程序异常终止。是两种常见的异常现象,它们在表现、触发机制和原因上既有区别,也存在潜在关联。
2025-02-17 10:29:39
666
原创 Slab分配器
slab 分配器是一种高效的小对象内存管理机制,而 slab 层则是基于 slab 分配器构建的抽象层,为内核提供了统一的小对象内存管理接口。它们共同协作,提高了内核内存分配和释放的效率,减少了内存碎片。Slab分配器通过预分配和缓存机制,显著提升了内核内存管理的效率。Slab中分配的最小内存单元,大小固定,由缓存类型决定。查看所有Slab缓存的详细信息(对象数量、内存占用等)。创建,包含对象的元数据(大小、对齐、构造函数等)。,划分为多个相同大小的对象(Object)。的对象(如进程描述符。
2025-02-07 14:05:07
672
原创 Linux内存相关
Linux内存管理通过分页、伙伴系统、Slab等机制平衡效率与碎片问题,但需结合场景规避常见陷阱(如泄漏、碎片、OOM)。理解NUMA、CMA、THP等特性,结合监控工具(freevmstat)和调优手段,可显著提升系统稳定性。
2025-02-06 20:08:53
571
原创 伙伴系统关键实现原理和机制
在内核中高效分配物理连续内存,是 Slab 等上层分配器的基石。其设计平衡了性能与碎片问题,但在极端场景仍需结合其他机制(如内存压缩、CMA)优化。是 Linux 内核中用于。的核心分配器,其核心目标是。)独立管理伙伴系统。
2025-02-06 20:03:19
744
原创 sed: 无法读取 modules.order: 没有那个文件或目录 Makefile:1311: recipe for target ‘_modinst_‘ failed make: *** [_m
这个错误提示表明在执行 sudo make modules_install 命令时,出现了无法读取 modules.order 文件的错误。可能是因为您之前没有成功编译内核,或者编译过程中出现了其他错误导致该文件没有生成。可以尝试重新编译内核并执行 sudo make modules_install 命令。如果编译和安装过程没有出现其他错误,那么您应该可以成功安装内核模块了。sed: 无法读取 modules.order: 没有那个文件或目录。
2024-01-14 20:27:01
3414
原创 QT笔记总结——知识点回顾(自用)
一、QT入门1.基础窗口类2.内存回收3.日志4.字符串类(1)构造函数(2)数据操作(3)子字符串查找和判断(4)遍历(5)查看字节数(6)类型转换(1)构造函数(2)数据操作(3)子字符串查找和判断(4)遍历(5)类型转换(6)字符串格式4.3 QByteArray和QString区别(1)包装基础数据类型(2)包装自定义数据类型4.5 点, 线, 尺寸, 矩形类4.6 日期和时间类(1)QDate类(2) QTime5.信号槽5.1 信号与槽5.2 标准信号槽的使用5.3 自定义信号槽的使用。
2023-10-05 16:42:05
735
原创 c++算法:数组(循环不变量原则)
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。循环不变量原则:区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
2023-08-12 22:05:26
337
原创 RuntimeError: CUDA error: out of memory解决方法
比如有0,1,2,3号GPU,CUDA_VISIBLE_DEVICES=2,3,则当前进程的可见GPU只有物理上的2、3号GPU,此时它们的编号也对应变成了0、1,即cuda:0对应2号GPU,cuda:1对应3号GPU。服务器的默认GPU显卡正在使用,需要使用GPU的另一个空闲的显卡;linux里查看GPU的显卡使用状态用代码。具体原因:使用CUDA_VISIBLE_DEVICES限制使用的GPU。我的是第二种情况,前一天可以运行的第二天不知道什么情况就报这个错误了。
2023-04-16 14:12:02
774
原创 【C++】为什么greater<int>是降序排列
来排序时,它会按照降序排列(即从大到小),因为它会将返回的bool值取反,导致大于号(>)变成小于号(
2023-04-09 20:45:01
1012
原创 AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘
服务器出现错误
2023-04-07 15:22:41
7057
4
原创 c++什么时候使用new,调用构造函数
对象:可以调用成员函数,不可以调用构造函数。类里面用new实现多态, 有的时候解决类。构造函数调用,什么时候使用new。
2023-03-14 11:35:06
1167
原创 python知识点补充:维度问题(多维),如何判断几维
即在第一维度第一个元素上的第二维度元素有六个分别是[0,2],[1,2],[1,3],[1,4],[2,1],[3,2];第一维度第二个元素上的第二维度元素也有六个分别是[1,1],[2,2],[3,3],[4,4],[5,5],[6,6];因此对于一个numpy多维array,[:,:,:,:,…第一个元素是[[0,2],[1,2],[1,3],[1,4],[2,1],[3,2]];第二个元素是[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6]];,从后往前看就是,取出。
2022-10-19 09:54:38
2615
1
原创 Transformer代码简单实现2
由于在 Encoder 和 Decoder 中都需要进行 mask(和矩阵原大小一样,有问题的地方加负无穷) 操作,因此就无法确定这个函数的参数中 seq_len 的值,如果是在 Encoder 中调用的,seq_len 就等于 src_len;这里要做的是,通过 Q 和 K 计算出 scores,然后将 scores 和 V 相乘,得到每个单词的 context vector。不同batch之间句子长度可以不一样,但是每个batch的长度必须是一样的:因此出现一个问题,输入计算的,需要知道每个字的。
2022-09-27 11:01:25
1154
原创 Pycharm的使用-操作和快捷键
链接:https://www.cnblogs.com/nickchen121/p/16479536.html。
2022-09-20 22:01:27
402
原创 Day06代码练习:transformer的实现
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看。B站:去钓鱼的程序猿
2022-09-16 21:46:01
1052
原创 论文中出现的 cf. i.e. s.t. e.g. w.r.t. et al. etc等英文缩写是什么意思
例句:Inherently, the vision-only problem has six DoFs that are unobservable and need to be held fixed during optimization, i.e. the absolute pose.例句:Twb = (Rwb, Wp) is the pose of the body frame b w.r.t. the world frame w.源自拉丁文exempli gratia。
2022-09-11 16:52:02
2300
原创 数学建模MATLAB代码知识点集合
中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5。说明:简单随机交叉验证,在n个样本中选择n*p个样本作为测试集(0
2022-09-11 16:48:03
834
原创 pytorch深度学习基础快速入门7:完整模型训练套路
因此在训练文件中要引入model(model和train文件一定要在一个文件夹下)-----------------测试数据集评估(不需要调优)加限制条件(避免无用信息)优化:tensorboard进行画图输出1,1(横着看)计算对应位置正确的个数:57:74:网络层中是否有特殊层顺序:6.具体实例网络模型加载网络模型预测最大结果:...
2022-06-27 21:27:27
1125
1
原创 pytorch深度学习基础快速入门6:现有网络模型的使用及修改、网络模型的保存与读取
false:网络架构替换,参数默认(没训练)true:(训练好的)如何利用现有网络进行修改:vgg分为100类–》10类:(1)加入层加到classifier中:(2)修改(1)(2)第二种方式更小恢复成网络模型(3)陷阱(方式1)保存:加载:应该确保网络模型是想要的模型(要重新引入class模型)—》其实是可以单独引入到model.load中(import)...
2022-06-27 20:24:23
658
原创 pytorch深度学习基础快速入门5:小实战、损失函数与反向传播、优化器
模型可视化详细:计算每个节点的参数,有了参数的梯度,就可以选取合适的优化器,以达到整体误差减小的作用。构造优化器调用优化器step方法(利用梯度进行更新)step利用grad对参数进行更新。(但是参数比较小,所以变化不会很大)循环往复,使得loss变小。该循环只是对数据进行一轮学习,因此在循环外再套一层循环:...
2022-06-25 20:50:24
274
原创 pytorch深度学习基础快速入门3:torchvison的使用+dataloader的使用
B站:小土堆+迅雷下载数据集datasetdataloader:加载器,从dataset中取
2022-06-24 19:56:35
259
原创 pytorch深度学习基础快速入门:卷积操作:卷积层、池化层、非线性激活、线性层
对应代码:二维矩阵**[[**尺寸只有高和宽,并不满足下面图片的参数(尺寸变换)接下来用卷积函数:变换数据input,想变换的大小:padding空白处为0
2022-06-22 20:57:28
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人