Android AOSP Ubuntu源码编译电脑卡顿问题定位解决

文章目录

  • 问题概述
  • 分析问题
  • 解决问题
    • 查看交换分区
    • 创建交换分区
    • 删除交换分区
    • 调整交换分区的活跃度

问题概述

开发SystemUI时,使用内存为16G的主机,Ubuntu 20.04的系统编译SystemUI的源码,编译的过程中发现电脑卡顿,鼠标不能移动。必须重启电脑才可以使用,如果继续编译代码,还是会出现卡顿的问题,严重影响开发效率。

分析问题

发现这个问题的时候,我的第一想法是内存不足,因为我的主机电脑的内存是比较老的,内存只有16G,所以我就准备开始采购内存条。转念一想,不对呀,前几天还能正常编译代码呢,突然不行了只有两个原因,内存条坏了,这点不可能,因为不编译代码,就没有问题,第二个原因,就是大量的CPU被占用了。后面在我的FrameWork同事的提示下发现了问题的真正原因。发现问题的方法也很简单,在编译源码的时候,另外开一个窗口,使用top命令,查看当前的CPU状况,和内存的使用状况。如下图所示:
在这里插入图片描述>上图是编译代码正常时候的情况,如果不正常的情况是,图中的红框内没有交换分区的内存,然后CPU会一直飙升到特别高,我的当时飙升到了1400%多,还出现虚拟内存不足的情况。导致这一问题的原因就是交换分区没有设置。交换分区可以在系统运行内存不足时将一部分未使用的内存文件转存在此分区以减轻动态内存的压力。所以解决这一问题的方法就是设置调整交换分区。

解决问题

问题发现后,我们开始准备配置我们的交换分区:

查看交换分区

首先我们需要先检查下是否启用了交换分区

$ sudo swapon --show   #未启用SWAP分区的话,执行此命令将不会有任何输出

在这里插入图片描述

创建交换分区

如果已经设置成功了就会出现上图中的信息,没有设置的话什么也不输出。
如果没有设置交换分区,则运行下面的命令创建交换分区

 sudo fallocate -l 32G /swapfile      #创建大小依据实际物理内存大小自行调整

需要特别注意的是,这里分配的交换分区的内存不宜太大,建议创建的文件大小为实际物理内存的 2-3 倍,比如我的物理内存是16G,我的这里就设置成32G

创建完成后给swapfile添加权限

$ sudo chmod 600 /swapfile

给完权限后,我们执行下面的命令标注交换分区

sudo mkswap /swapfile

如果已经执行过命令,则会输出下面的信息。
在这里插入图片描述创建完交换分区后,就可以激活分区了

sudo swapon /swapfile

如果已经激活过,运行命令会提示下面的信息
在这里插入图片描述

可以使用下面的命令查看交换分区是否工作:

sudo swapon --show
sudo free -h

命令执行结果如下所示
在这里插入图片描述为了防止交换分区莫名丢失,推荐将创建的交换分区设置为永久分区,将 交换分区路径写入到/etc/fstab文件中

/swapfile swap swap defaults 0 0

删除交换分区

删除交换分区首先需要使用下面的命令停用交换分区:

sudo swapoff -v /swapfile

然后在/etc/fstab文件中删除交换分区的路径。接着使用下面的命令删除交换分区文件

sudo rm /swapfile

调整交换分区的活跃度

我们可以使用下面的命令查看当前系统设置的 Swappiness 值

cat /proc/sys/vm/swappiness

在这里插入图片描述可以使用下面的命令临时调整这个活跃值,这个活跃值可以设置在0-100,根据环境需求自行调整

sudo sysctl vm.swappiness=60   

我们也可以设置永久性的 活跃值,方法就是编辑/etc/sysctl.conf文件,在文件末尾添加下面的内容:

vm.swappiness=60

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/614453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在Linux上安装并运行RabbitMQ

目录 准备CentOS服务器 下载rabbit-server和erlang文件 启动RabbitMQ服务 准备CentOS服务器 两个命令,选一个能用的,查看CentOS服务器的版本 lsb_release -a下载rabbit-server和erlang文件 参考文章:http://t.csdnimg.cn/t8BbM 1、创建新…

IPv6资产测绘哪家强?揭秘新一代网络空间资产测绘平台的独门秘籍

网络空间资产测绘,即通过一系列技术手段,对网络中的各类资产进行全面的发现、分类和定位,为各类用户提供精准的数据支撑和决策依据。网络空间资产测绘作为一门新兴的交叉学科,融合了计算机网络技术、数据挖掘、人工智能、信息安全…

Mat: Unknown HPROF Version

问题:Mat 加载 android studio 导出的 hprof 文件失败 原因:android hprof 文件不是标准的 java hprof 文件 解决办法: 使用 android sdk 自带的命令将 hprof 转换成标准的 java hprof

去哪里找高清视频素材?推荐几个短视频素材免费网站

在数字时代,视频内容的质量直接影响观众的吸引力和留存率。尤其是高清、4K视频素材和可商用素材,它们在提升视觉质量和叙事深度方面起到了至关重要的作用。以下是一些国内外的顶级视频素材网站,它们提供的资源将为您的创作提供极大的支持和灵…

企业微信hook接口协议,ipad协议http,群发消息(每天每人一次)

群发消息(每天每人一次) 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信vids是long要发送的人或者群ididisroom是bool是否是群消息 请求示例 {"uuid":"xxxxxxxx","vids": [&qu…

渗透思考题

一,尝试登录。 客户端对密码进行哈希处理并缓存密码hash,丢弃实际的明文密码,然后将用户名发送到服务器,发起认证请求 密文存储位置:数据库文件位于C:WindowsSystem32configsam,同时挂载在注册表中的HKLMSA…

用python写算法——栈笔记

栈 栈的定义相关算法题 栈的定义 1.它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面&#xff0…

12个网上赚钱野路子信息差,人人可做的赚钱小项目!

在这个多元化的时代,副业已经成为许多人增加收入、实现自我价值的重要途径。今天,我们就来聊聊那些既有趣又能赚钱的副业项目,让你的钱包鼓起来! 1.文字创作 写作不仅是情感的宣泄,更是财富的积累。无论是自媒体文、软…

【3dmax笔记】036:FDD修改器

一、FDD修改器简介 FDD修改器是对模型进行变形处理的命令,FDD后面的数字越大,编辑节点越多,编辑越精细,但是FDD控制点多的同时,模型上的节点也要多才可以。 FFD修改器是一种非常灵活的修改器,可以让我们对模型进行自由的变形操作。通过在FFD修改器中设置变形点,我们可…

HarmonyOS开发案例:【生活健康app之获取成就】(3)

获取成就 本节将介绍成就页面。 功能概述 成就页面展示用户可以获取的所有勋章,当用户满足一定的条件时,将点亮本页面对应的勋章,没有得到的成就勋章处于熄灭状态。共有六种勋章,当用户连续完成任务打卡3天、7天、30天、50天、…

域基础-NTLM协议

简介 NTLM(New Technology LAN Manager)协议是微软用于Windows身份验证的主要协议之一。继SMB、LM协议之后微软提出了NTLM协议,这一协议安全性更高,不仅可以用于工作组中的机器身份验证,又可以用于域环境身份验证,还可以为SMB、H…

任务:单域,域树的搭建

一、单域: 搭建所需的系统:win2016 sever,win10 1.在创建域前,先设置静态ip 先查看win2016 sever的IP, ip:192.168.154.133 网关:192.168.154.2 DNS服务器:192.168.154.2 设置…

【计算机网络原理】初识网络原理和一些名词解释​​

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

前端笔记-day04

文章目录 01-后代选择器02-子代选择器03-并集选择器04-交集选择器05-伪类选择器06-拓展-超链接伪类07-CSS特性-继承性08-CSS特性-层叠性09-CSS特性-优先级11-Emmet写法12-背景图13-背景图平铺方式14-背景图位置15-背景图缩放16-背景图固定17-background属性18-显示模式19-显示模…

Agisoft Metashape Pro for Mac/win:开启三维建模新视界

在当今数字化的时代,三维建模技术正发挥着越来越重要的作用。而 Agisoft Metashape Pro for Mac/win 无疑是该领域的一颗璀璨明星。 这款强大的三维建模软件为专业人士和爱好者提供了无与伦比的工具和功能。无论你是从事建筑设计、考古研究、影视特效制作还是地理信…

acer笔记本怎样进行系统还原?教你两招!

acer笔记本怎样进行系统还原?教你两招! 作为笔记本用户,你在日常使用中可能会遇到各种各样的电脑问题。一般来说,对于一些小问题,我们可以通过一些简单的操作来解决,比如重新启动电脑或者长按电源键强制关机…

经典多模态大模型

“浅对齐”模型 经典多模态结构BLIP2 Motivation 端到端的进行vision-language预训练成本太大了,之前存在很多预训练好的模型,这篇文章希望能够使用这些训练好的参数,节约成本。 如果直接冻结预训练好的参数,去做下游任务&…

防火墙技术基础篇:解析防火墙应用层代理概念及功能

防火墙技术基础篇:解析防火墙应用层代理概念及功能 1 应用层代理的概念 应用层代理(Application Proxy):防火墙应用层代理是网络安全领域中的一种重要技术,工作在OSI模型的第七层,即应用层。它通过代理服…

ubuntu系统在有无NVIDIA驱动下查看显卡型号

在ubuntu系统下,分别在有nvidia显卡驱动和无nvidia显卡驱动时,查看nvidia显卡型号。 1、有nvidia显卡驱动时的查看方式 nvidia-smi -L会显示如下信息: GPU 0: NVIDIA GEForce GTX 1660 SUPER (UUID: GPU-*****)2、无nvidia显卡驱动时的查看…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 (四) 大家继续看 https://lilianweng.github.io/posts/2023-06-23-agent/的文档内容 第三部分:工具使用 工具的使用是人类的一个显着而显着的特征。我们创造、修改和利用外部物体来完成超…