精华内容
下载资源
问答
  • 如何解决CPU使用过高问题

    万次阅读 2012-04-10 19:23:54
    在开发过程中,我们会遇到手机的CPU使用过高而引发的问题,那接下来,我对这方面知识做些整理及归纳 1. CPU使用背景知识: CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。 而Android关于...

    在开发过程中,我们会遇到手机的CPU使用率过高而引发的问题,那接下来,我对这方面知识做些整理及归纳
    1. CPU使用背景知识:
    CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。

    而Android关于进程使用率的限制:

    前台进程不超过95%,后台进程5%, 但是在系统没有前台进程时,后台进程可以超过5%

    (关于什么是前/后台进程,我就不啰嗦了)


    2. 可能引发的问题

    CPU使用率过高,CPU过于繁忙,会使整个手机无法响应用户,整体性能降低,用户体验就会很差,也容易引起ANR等等一系列问题。


    3. 解决方案

    a. 如果已经导致ANR, 则去log里面搜索"ANR in"

    b. 没有导致ANR则

     先看看当前CPU使用状况,看看是不是别人占太多了,把CPU用得太狠

     adb shell top


    User 19%, System 16%, IOW 0%, IRQ 0%
    User 63 + Nice 0 + Sys 53 + Idle 200 + IOW 1 + IRQ 0 + SIRQ 0 = 317


         PID PR CPU% S  #THR     VSS       RSS      PCY    UID        Name
        187  0    14%     S    19      72560K   8484K     fg    system   /system/bin/surfaceflinger
      7499  0      4%     S    40   385420K   54392K   bg   9992       com.htc.album
    19792  0     3%      R     1         1128K   468K       fg     root         top

    注:PCY就是显示是前台进程(fg)还是后台进程(bg)


    如果还是自己应用的问题,则使用TraceView进行debug

    TraceView说明(摘自网上)

    TraceView
        1)功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等
     2)方法:
      a)在程序代码中加入追踪开关
      import android.os.Debug;
      ……
      android.os.Debug.startMethodTracing(“/data/tmp/test”);// 先建/data/tmp目录
      ……// 被追踪的程序段
      android.os.Debug.stopMethodTracing();
      b)编译,运行后,设备端生成/data/tmp/test.trace文件
      c)把trace文件复制到PC端
      $ adb pull /data/tmp/test.trace ./
      d)使用android自带工具分析trace文件
      $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace
      此时可看到各个函数被调用的次数CPU占用率等信息
      e)使用android自带工具分析生成调用关系类图
      $ apt-get install graphviz# 安装图片相关软件
      $ANDROID_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace
      此时目录下生成类图test.png
     3)注意
      trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG版本模拟器的调试,否则在分析trace文件时会报错

    通过上述方法找到占用CPU过高的代码,根据之前的知识(后台进程CPU使用率 < 5%),把该代码段放到后台进程中执行或开低优先级的Thread去执行。







    展开全文
  • 在我们日常使用电脑的时候,也许遇到CPU莫名占用过高,造成电脑异常的卡顿,而重启电脑也不一定是个好的办法!通常情况下,CPU占用过高是由于后台运行程序过多所导致的,这时候调出任务管理器,关闭无用的程序即可!...

    在我们日常使用电脑的时候,也许遇到CPU莫名占用过高,造成电脑异常的卡顿,而重启电脑也不一定是个好的办法!

    通常情况下,CPU占用过高是由于后台运行程序过多所导致的,这时候调出任务管理器,关闭无用的程序即可!

    27c93a0592b2f92d893b1e6114e0062a.png

    如果以上方法无明显效果的话,可以尝试以下操作!

    NO.1 关闭windows家庭组服务

    windows系统默认是开启这个服务的,而对于大多数人来说,用不到这个功能,且关闭也不会影响电脑的正常使用,这个功能也会占用一部分的CPU,那就直接关闭就好了!

    按下 【win】 +【 r】 键调出运行命令窗口,输入 msconfig 确定,在弹出的系统配置界面中点击【服务】 找到 HomeGroup Listener 和 HomeGroup Provider ,右键设置为禁用即可。

    12a539f1d2fb6642d3e5afeb956470f1.png

    NO.2 关闭windows提示功能

    windows10的提示功能,是通过用户的使用习惯进行推送消息的,所以也是CPU占用过高的一个原因!

    具体操作步骤是在小娜窗口中,输入“通知”,点击上方【通知和操作设置】,然后在界面中倒找 “获取应用或其他发送者的通知”,关闭就ok了。

    b57c109bb3f37b7da1b59587076f98d2.png

    NO.3 优化开机启动项

    有一部分不常用的程序在我们电脑开机后就会自启,这也是导致CPU占用过高的一个原因!

    具体优化步骤是,按下 【Ctrl】 +【 Alt】+【delete】,选择任务管理器,点击“启动”把无需开机启动的程序鼠标右键禁用即可!

    0d17c9eea573b002eec5265eab5ee87d.png

    NO.4 硬件原因

    硬件老旧,性能不足,散热不良,也会造成CPU温度过高,从而导致电脑卡顿,这里小编建议大家对硬件进行升级和日常对电脑的散热维护等!

    以上就是本期给大家提的一点小建议,如果您觉得实用的话可以点击下方收藏!

    展开全文
  • 本文介绍了如何在Linux中解决CPU使用过高的问题。找出罪魁祸首运行异常的应用程序连速度最快的处理器都“俯首称臣”。可以使用System Monitor应用程序或终端中的top,找出有问题的那个应用程序。打开终端,键...

    原标题:如何解决Linux中CPU使用率高的问题?

    电脑死机了?还是开始听到电脑发出很响的CPU风扇噪音?Linux中CPU使用率过高的原因很多,但最常见的原因是运行异常的应用程序。本文介绍了如何在Linux中解决CPU使用率过高的问题。

    找出罪魁祸首

    运行异常的应用程序连速度最快的处理器都“俯首称臣”。可以使用System Monitor应用程序或终端中的top,找出有问题的那个应用程序。

    打开终端,键入top,然后按回车键。

    图1

    默认情况下,所有进程都按照CPU使用率来排序,最耗CPU的进程位于顶部。如果某个应用程序始终位于前五名,CPU使用率明显高于其余应用程序,那它就是罪魁祸首。

    终止或杀死应用程序

    top包括支持renice和kill的功能,那样您可以使用这些工具来改变任何进程的优先级或强制停止它。

    应用程序的nice优先级是指与其他运行中的进程相比,允许它使用的CPU资源数量。nice接受的值在+19到-20之间。数值越高,优先级越低。

    在top中,按r并输入有问题的那个应用程序的PID。试着改成“+5”值,如果不管用,重试“+10”、“+15”,最后是最低优先级“+19”。

    图2

    如果该应用程序没有响应,应立即终止它。在top中按k,输入PID,然后按回车键,该应用程序将消失。

    更新一切

    如果您每次运行应用程序时问题依然存在,更新该应用程序可能会解决问题。

    为此,在终端中输入:

    sudo apt update && sudo apt -y upgrade

    图3

    之后,试着再运行有问题的那个应用程序。

    删除并重新安装应用程序

    如果问题没有解决,有可能是由于程序配置中的错误参数。将其重置为原始状态可能会有所帮助。

    先备份配置,以防这可能不是问题的根源,到时候便于恢复。然后,清除有问题的那个应用程序:

    sudo apt purge APP_NAME

    图4

    重新安装应用程序:

    sudo apt update

    sudo apt install APP_NAME

    图5

    这会将应用程序重置为原始状态。

    回到以前的版本

    如果升级应用程序解决不了问题,可以改而回到以前的版本。可以试着降级并使用旧版本,至少直到开发人员修复了应用程序中的错误。

    要降级应用程序,先通过运行终端并执行以下命令来查看可用版本:

    sudo apt policy APP_NAME

    目前安装的版本旁边会有三个星号。注意其他可用版本。

    降级之前,建议您清除现有版本。这将清除任何与配置有关的问题。

    安装旧版本,方法如下:

    sudo apt install APP_NAME=VERSION

    图6

    使用替代应用程序

    Linux的优点是,有许多应用程序可执行同样的操作。因此,如果一个应用程序导致CPU使用率过高,您可以换成替代应用程序。

    修复导致CPU使用率过高的核心应用程序

    如果大量耗用CPU资源的是核心应用程序(比如systemd或Xorg),会发生什么?

    若是systemd,试着禁用电脑上非必需的功能和辅助设备,比如游戏手柄和打印机。

    如果设备是游戏手柄、鼠标或键盘,您又在运行Ubuntu或兼容的发行版,请在终端中键入xinput,查看所有已连接的设备。想禁用其中一个设备,请使用:

    xinput --disable DEVICE_ID

    图7

    想重新启用设备,请在上述命令中将disable换成enable。

    至于其他设备,解决办法稍微复杂一点。首先,您得在终端中输入lsmod并按回车键,查看Linux内核作为模块加载的所有其他驱动程序。找到有问题的设备对应的驱动程序,并记下名称。然后,输入以下内容:

    sudo nano /etc/modprobe.d/blacklist.conf

    您刚打开的文档是启动过程中不应加载的模块的黑名单。它可能已经填充了一些条目。移至文件末尾,遵循同样的语法,将模块添加到该列表中。您的条目应是这样:

    blacklist MODULE_NAME

    保存文件,重新启动,但愿现在一切正常。

    若是Xorg,试着禁用Window Manager的合成器。虽然合成器将与CPU有关的任务卸载到GPU,但并非总是如此。有时,通过启用合成支持,您还可以实现许多效果。

    有时,GPU的驱动程序也会导致CPU使用率过高。Xorg与英伟达或AMD驱动程序的特定版本并不是很兼容。解决办法是升级或降级到不同的版本。另外,可以试用GPU驱动程序的开源版本。不过,那些版本没有同样的功能集,可能缺少一些功能。

    换掉内核

    Linux内核很少是CPU使用率过高的原因。不过,如果您到了这一步却仍未找到解决办法,不妨试一试。

    如官网上所述,要在Ubuntu中安装流行的Liquorix内核,访问终端并输入:

    sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

    图8

    这会将存储库添加到Ubuntu的源代码中。然后,要将内核本身加载上来,请使用:

    sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

    重新启动以启用新内核,但愿CPU使用率会回到正常水平。

    但愿其中一种解决办法对您有用。如果没用,您也可以试着用taskset为应用程序手动分配CPU核心

    (https://www.maketecheasier.com/assign-cpu-cores-with-taskset-linux/)。最后,也许是时候从头开始重新安装操作系统或改用不同的发行版本了返回搜狐,查看更多

    责任编辑:

    展开全文
  • 本文介绍了如何在Linux中解决CPU使用过高的问题。找出罪魁祸首运行异常的应用程序连速度最快的处理器都“俯首称臣”。可以使用System Monitor应用程序或终端中的top,找出有问题的那个应用程序。打开终端,键入top...

    电脑死机了?还是开始听到电脑发出很响的CPU风扇噪音?Linux中CPU使用率过高的原因很多,但最常见的原因是运行异常的应用程序。本文介绍了如何在Linux中解决CPU使用率过高的问题。

    找出罪魁祸首

    运行异常的应用程序连速度最快的处理器都“俯首称臣”。可以使用System Monitor应用程序或终端中的top,找出有问题的那个应用程序。

    打开终端,键入top,然后按回车键。

    4a826425530810d23809b74d3c3af013.png图1

    默认情况下,所有进程都按照CPU使用率来排序,最耗CPU的进程位于顶部。如果某个应用程序始终位于前五名,CPU使用率明显高于其余应用程序,那它就是罪魁祸首。

    终止或杀死应用程序

    top包括支持renice和kill的功能,那样您可以使用这些工具来改变任何进程的优先级或强制停止它。

    应用程序的nice优先级是指与其他运行中的进程相比,允许它使用的CPU资源数量。nice接受的值在+19到-20之间。数值越高,优先级越低。

    在top中,按r并输入有问题的那个应用程序的PID。试着改成“+5”值,如果不管用,重试“+10”、“+15”,最后是最低优先级“+19”。

    02f40757f8e8befc8f79279944438a19.png图2

    如果该应用程序没有响应,应立即终止它。在top中按k,输入PID,然后按回车键,该应用程序将消失。

    更新一切

    如果您每次运行应用程序时问题依然存在,更新该应用程序可能会解决问题。

    为此,在终端中输入:

    sudo apt update && sudo apt -y upgrade

    17e14e795c7685a07fdea58fc93bc361.png图3

    之后,试着再运行有问题的那个应用程序。

    删除并重新安装应用程序

    如果问题没有解决,有可能是由于程序配置中的错误参数。将其重置为原始状态可能会有所帮助。

    先备份配置,以防这可能不是问题的根源,到时候便于恢复。然后,清除有问题的那个应用程序:

    sudo apt purge APP_NAME

    84e70436ac9a646076358daefb95b7f7.png图4

    重新安装应用程序:

    sudo apt updatesudo apt install APP_NAME

    2fe1942eabacf564f2ad04a06d9ea356.png图5

    这会将应用程序重置为原始状态。

    回到以前的版本

    如果升级应用程序解决不了问题,可以改而回到以前的版本。可以试着降级并使用旧版本,至少直到开发人员修复了应用程序中的错误。

    要降级应用程序,先通过运行终端并执行以下命令来查看可用版本:

    sudo apt policy APP_NAME目前安装的版本旁边会有三个星号。注意其他可用版本。

    降级之前,建议您清除现有版本。这将清除任何与配置有关的问题。

    安装旧版本,方法如下:

    sudo apt install APP_NAME=VERSION

    0659e536a6e4d2d5a2d2968d936862d5.png图6

    使用替代应用程序

    Linux的优点是,有许多应用程序可执行同样的操作。因此,如果一个应用程序导致CPU使用率过高,您可以换成替代应用程序。

    修复导致CPU使用率过高的核心应用程序

    如果大量耗用CPU资源的是核心应用程序(比如systemd或Xorg),会发生什么?

    若是systemd,试着禁用电脑上非必需的功能和辅助设备,比如游戏手柄和打印机。

    如果设备是游戏手柄、鼠标或键盘,您又在运行Ubuntu或兼容的发行版,请在终端中键入xinput,查看所有已连接的设备。想禁用其中一个设备,请使用:

    xinput --disable DEVICE_ID

    eab89574ab9a6d8ad668871b6c662152.png图7

    想重新启用设备,请在上述命令中将disable换成enable。

    至于其他设备,解决办法稍微复杂一点。首先,您得在终端中输入lsmod并按回车键,查看Linux内核作为模块加载的所有其他驱动程序。找到有问题的设备对应的驱动程序,并记下名称。然后,输入以下内容:

    sudo nano /etc/modprobe.d/blacklist.conf您刚打开的文档是启动过程中不应加载的模块的黑名单。它可能已经填充了一些条目。移至文件末尾,遵循同样的语法,将模块添加到该列表中。您的条目应是这样:

    blacklist MODULE_NAME保存文件,重新启动,但愿现在一切正常。

    若是Xorg,试着禁用Window Manager的合成器。虽然合成器将与CPU有关的任务卸载到GPU,但并非总是如此。有时,通过启用合成支持,您还可以实现许多效果。

    有时,GPU的驱动程序也会导致CPU使用率过高。Xorg与英伟达或AMD驱动程序的特定版本并不是很兼容。解决办法是升级或降级到不同的版本。另外,可以试用GPU驱动程序的开源版本。不过,那些版本没有同样的功能集,可能缺少一些功能。

    换掉内核

    Linux内核很少是CPU使用率过高的原因。不过,如果您到了这一步却仍未找到解决办法,不妨试一试。

    如官网上所述,要在Ubuntu中安装流行的Liquorix内核,访问终端并输入:

    sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

    96c02f670dc7a8973f4e2706c4170cef.png图8

    这会将存储库添加到Ubuntu的源代码中。然后,要将内核本身加载上来,请使用:

    sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64重新启动以启用新内核,但愿CPU使用率会回到正常水平。

    但愿其中一种解决办法对您有用。如果没用,您也可以试着用taskset为应用程序手动分配CPU核心。最后,也许是时候从头开始重新安装操作系统或改用不同的发行版本了

    举报/反馈

    展开全文
  • 在我们日常使用电脑的时候,也许遇到CPU莫名占用过高,造成电脑异常的卡顿,而重启电脑也不一定是个好的办法!通常情况下,CPU占用过高是由于后台运行程序过多所导致的,这时候调出任务管理器,关闭无用的程序即可!...
  • 内存占用高时 free 看内存余量 ...CPU占用高时 top查看cpu占用较的进程 top查看cpu占用最高进程的最高线程id jstack导出该进程堆栈使用情况的stack文件 cat+grep+线程id浏览相关日志 ...
  • 经过一段时间的观察,服务器的cpu波动还是很大,表现出来程序不稳定,如何进一步的解决问题呢?
  • CPU温度过高怎么解决?1、首先保证电脑处于良好的散热环境;2、拆机对CPU散热风扇进行清洁。3、在CPU与散热片间加导热硅脂。 4、更换CPU散热风扇。5、加装外部散热器,或者在空调房内运行。6、卸载多余的软件,或者...
  • Mysql占用CPU过高如何优化,如何解决

    千次阅读 2019-02-14 09:03:03
    Mysql占用CPU过高如何优化   一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 top 命令 查看Cpu(s) 参数一直处于 98% 状态 ,load average达到了 5 (4核服务器)   可见DB已经...
  • 一、找出是因哪个站点导致...二、如何从该站中找出问题,是由于什么原因? 1、善用服务器性能跟踪工具: 如上图: A、NumberOfReclaimedConnections(通过垃圾回收而回收的连接的数量,其中应用程序未调用 Clo...
  • MySQL占用CPU过高如何优化一次生产DB服务器的 超负荷运行问题解决:1.查看生产DB服务器top列表,执行 top 命令查看Cpu(s) 参数一直处于 98% 状态 ,load average达到了 5 (4核服务器)可见DB已经超负荷运行了2.使用...
  • 在公司的项目中,突然出现一个情况,mongodb 的CPU利用率到达100%,导致服务器这边卡死了,请求了半天无响应,提示请求超时。 因为,当时APP用户可能会在某一个时间段集中的使用,所以,请求量一下子就飙上去了,...
  • 如何解决CPU占用高电脑莫名卡?https://www.zhihu.com/video/1069298223482646528电脑使用时间一久,常常会遇到 CPU 占用率过高的情况,这时候电脑一般都会变得异常地卡顿,重新启动也不一定是个有效的解决办法。...
  • Java应用中CPU使用过高该怎么解决

    万次阅读 2018-10-15 17:42:51
    在JAVA策略当中,Java应用中CPU使用过高我们该怎么办呢?我们需要时刻清楚排查java应用中CPU使用率高或内存占用高这类问题,其实在整个运行过程中,排查步骤基本都是差不多的。当然了我们最好还是通过风月体验网中...
  • 使用电脑的时候,经常会碰到系统运行忽然变得非常慢,这时大部分的人可能会直接通过任务管理器查看其CPU使用率,这时就会发现其CPU占有率极高,甚至达到了...当我们遇到电脑cpu占用率过高的情况时,该如何解决呢...
  • 服务主机本地系统占cpuOn some Windows 10 PCs, the “Service Host: Local System (Network Restricted)” process group in the Task Manager can use a high amount of CPU, disk, and memory resources....
  • 如何解决CPU占用高电脑莫名卡?https://www.zhihu.com/video/1069298223482646528电脑使用时间一久,常常会遇到 CPU 占用率过高的情况,这时候电脑一般都会变得异常地卡顿,重新启动也不一定是个有效的解决办法。...
  • 很多网友再开启电脑后都会习惯性的开启QQ,多次使用后发现每次开启QQ后,电脑运行一段时间就会变得又卡又慢,然后打开任务管理器后才发现,QQ在CPU中的占用率非常,可是QQ本身内存并不大,这是怎么回事呢如何解决?...
  • 有时候我们经常会遇到电脑突然卡顿的问题,查原因后发现是CPU使用率太高,那么该如何降低CPU的占用率呢?什么问题导致CPU占用率过高?请看下文具体介绍。解决方法:1、防杀毒软件造成故障;2、驱动没有经过认证,...
  • 您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL 账户相关的线程)。请参见13.5.5.3节,“KILL语法”。如果...
  • 女主宣言服务的核心需求是长连接的需求,最近由于业务线的需求,...就按照当时3千一台的评估,线上在真实提供服务的时候,却和预期有很大出入,接着详细介绍一下这次的性能瓶颈,以及如何解决,解决的方法本身不麻烦...
  • 文章目录CPU使用率查看CPU使用率CPU 使用率过高总结 CPU使用率 Linux作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此会造成多任务同时运行的错觉。 为了维护...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 277
精华内容 110
关键字:

如何解决cpu使用过高