所以我在我们的生产环境中遇到了一个问题,即2个线程已经运行了9个小时和5个小时,它们导致cpu使用率保持在99%左右
我已经包含了堆栈跟踪!Clrstack和kb 2000我一直在谷歌等等...我永远无法找到任何可以帮助我弄清楚这些线程正在做什么以及为什么它们消耗这么多在资源方面
0:048> !clrstack
OS Thread Id: 0x345c (48)
ESP EIP
01e5f068 7c8285ec [HelperMethodFrame_1OBJ: 01e5f068] System.Threading.WaitHandle.WaitOneNative(Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean)
01e5f114 792b687f System.Threading.WaitHandle.WaitOne(Int64, Boolean)
01e5f130 792b6835 System.Threading.WaitHandle.WaitOne(Int32, Boolean)
01e5f144 7a9390a2 System.Net.ConnectionPool.CleanupCallback()
01e5f154 7a938fc3 System.Net.ConnectionPool.CleanupCallbackWrapper(Timer, Int32, System.Object)
01e5f184 7aa97f5f System.Net.TimerThread+TimerNode.Fire()
01e5f1cc 7a584c84 System.Net.TimerThread+TimerQueue.Fire(Int32 ByRef)
01e5f20c 7a55db8b System.Net.TimerThread.ThreadProc()
01e5f25c 792d6cf6 System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
01e5f268 792f5611 System.Threading.ExecutionContext.runTryCode(System.Object)
01e5f698 79e71b4c [HelperMethodFrame_PROTECTOBJ: 01e5f698] System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
01e5f700 792f5507 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
01e5f71c 792e0175 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
01e5f734 792d6c74 System.Threading.ThreadHelper.ThreadStart()
01e5f960 79e71b4c [GCFrame: 01e5f960]
01e5fc50 79e71b4c [ContextTransitionFrame: 01e5fc50] …Run Code Online (Sandbox Code Playgroud) 我使用以下代码来分析我的操作,以优化我的函数中的cpu周期.
static __inline__ unsigned long GetCC(void)
{
unsigned a, d;
asm volatile("rdtsc" : "=a" (a), "=d" (d));
return ((unsigned long)a) | (((unsigned long)d) << 32);
}
Run Code Online (Sandbox Code Playgroud)
我不认为这是最好的,因为即使连续两次通话也给了我"33"的差异.有什么建议 ?
我正在尝试为世界的虚假像素化地图制作动画,以便它在不同颜色之间平滑过渡.我原来用jquery和表做了这个,但cpu使用率非常高,所以我想我会尝试使用html5 canvas.但是,我仍然获得非常高的CPU使用率.我想知道它是否是代码中的大数组(我用它来表示应该填充正方形的位置).任何帮助将深表感谢.
<!DOCTYPE html>
<html>
<head>
<title>canvas version</title>
<script src="raphael.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>
<div id="canvasesdiv" style="position:relative; width:864px; height:456px">
<canvas id="world-map" width="864" height="456" style="position:absolute; left:0px; top:0px; z-index:1;">
</canvas>
<canvas id="backdrop" width="864" height="456" style="position:absolute; left:0px; top:0px; z-index:0;"></canvas>
<script type="text/javascript">
//declare vars
var ctx1
var ctx2
var layer1
var layer2
var red = 255;
var dr = 1;
//initialization
function init() {
layer1 = document.getElementById("backdrop");
ctx1 = layer1.getContext("2d");
//layer2 = document.getElementById("world-map");
//ctx2 = layer2.getContext("2d");
drawMap(red);
setInterval(function(){red = drawMap(red);},1);
}
//LOOP THROUGH …Run Code Online (Sandbox Code Playgroud) 第二个我从Eclipse示例插件中的一个简单的骨架应用程序打开layout.xml文件,cpu使用率锁定了高达25%的IE.1个完整的核心.在过去的30分钟里,我一直在这样做,我想让他跑更长的时间,因为我认为它在背景中有效,但它只是继续这样做.
到目前为止我已经在2台计算机上测试了这个,安装Android SDK,安装Eclipse IDE for Java Developers,安装ADT插件:http://dl-ssl.google.com/android/eclipse/ 打开新项目,选择一个Android 2.3.3的骨架项目,只需打开布局骨架活动,可能会在右上角更改为android 2.3.3,也可能设置为theme.black.noTitleBar.Fullscreen.
现在你的处理器应该达到100%(在一个核心上)并且从现在起应该像这样锁定.
有没有解决这个问题的方法,因为在家里我只有1个核心而我无法解决任何问题.
有没有人知道为什么会这样? http://my.jetscreenshot.com/demo/20110517-gbr8-201kb
我试图从使用Apple SDK在iOS4上运行的后台应用程序获取各种进程(cpu ticks)的CPU使用率.这完全取决于用户的同意,因此这里没有任何不道德的行为.
我已经使用sysctl获取进程列表,但进程的cpu ticks始终从设备返回为0.或者,我试图寻找前台进程并每隔几秒轮询一次以获得应用程序的使用方式.但是,没有API /标志指示进程是在前台还是后台运行.我检查了一个进程的内存消耗,并确定它是否在后台运行(如果在后台,内存不会波动).但是,API proc_pidinfo是私有的,Apple拒绝了该应用.
我看过一些与这些话题有关的帖子,但没有得到明确的答案.
我知道沙拳不会允许获取其他应用程序的信息(顺便说一句,顺便说一句,不是真的,因为sysctl给出了PID,进程名称和开始时间).但是,我在Zokem的appstore上看到了一个名为MyLife的应用程序,他们报告了这些信息.它们准确到秒.我想知道是否有系统日志或数据库存储此信息.
任何人都有关于获取应用程序使用时间的想法?
是否有一个Android API提供正在运行的应用程序的CPU,内存使用?我想根据cpu使用情况动态调整应用程序中的处理.
由于机器人淹没我的网站,我的CPU使用率突然超过400%,我创建了一个robots.txt,如下所示,并将文件放在我的根目录中,例如"www.example.com/":
User-agent: *
Disallow: /
Run Code Online (Sandbox Code Playgroud)
现在谷歌尊重这个文件,我的日志文件中没有更多的出现.然而,BingBot和BaiduSpider仍会显示在我的日志中(并且非常丰富).
由于我的CPU使用量大幅增加而且带宽和我的托管服务提供商即将暂停我的帐户,我首先删除了所有页面(如果有一个讨厌的脚本),上传的干净页面,通过IP地址阻止所有机器人.htaccess然后创建了robots.txt文件.
我到处搜索确认我做了正确的步骤(还没有尝试过.htaccess中的"ReWrite"选项).
任何人都可以确认我所做的应该做的工作吗?(自从我开始这项冒险以来,我的CPU使用率在6天内降至120%,但至少阻止IP地址应该会将CPU使用率降低到通常的5-10%).
我正在使用React Native组件ActivityIndicator来显示预加载状态。但是,如果此状态持续的时间比预期的时间长(或应用陷入预加载状态),我的CPU将开始快速过载。您可能会认为这是由于后台的某些计算引起的,但是即使我只是这样渲染,也会发生这种情况...
<View>
<ActivityIndicator color="white" size="small"/>
<Text>Connecting...</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
我在Mac OSX 10.12.1的Genymotion模拟器中使用模拟设备(S. Galaxy S6,API 23),这消耗了CPU的进程是Vboxheadless
有什么想法可能导致此问题,或如何解决?我是在做错什么还是缺少某些设置?
android cpu-usage activity-indicator genymotion react-native
有一个运行的Java Web应用程序 Jetty 9.4.1.v20170120
更新:
相同的结果Jetty 9.4.3.v20170317
这个web-app有一个TCP-client和using Web-socket(Atmosphere)来推送数据.
经过几分钟/小时的工作后,网络应用程序开始使用100%的CPU,没有任何特殊原因.即使它是idle.
在分析和获取线程转储之后,似乎Jetty是高CPU消耗的来源.
那么Jetty有什么问题?这是一个错误吗?
下面我列出了VisualVM在CPU消耗达到100%时进行性能分析(使用)后的一些证据:
我已经回顾了与我有类似头衔的其他问题,但是它们似乎都没有涵盖我所经历的情况.我的应用程序正常启动,以常规和预期的方式收集垃圾.
2018-05-21T20:08:41.136-0400: 19979.368: [GC (Allocation Failure) [PSYoungGen: 71364K->10997K(73728K)] 303964K->243661K(466944K), 0.0165899 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2018-05-21T20:09:01.212-0400: 19999.444: [GC (Allocation Failure) [PSYoungGen: 71413K->11065K(73728K)] 304077K->243865K(466944K), 0.0121248 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-05-21T20:09:30.450-0400: 20028.682: [GC (Allocation Failure) [PSYoungGen: 71481K->12550K(73728K)] 304281K->245422K(466944K), 0.0133476 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-05-21T20:09:50.492-0400: 20048.723: [GC (Allocation Failure) [PSYoungGen: 72966K->10454K(73728K)] 305838K->243374K(466944K), 0.0141533 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
Run Code Online (Sandbox Code Playgroud)
在看似任意的时间之后,垃圾收集变得非常激进,每秒运行几次并占用CPU的整个运行时间.在应用程序重新启动之前,它将保持此状态.
2018-05-21T20:10:12.104-0400: 20070.335: [GC (Allocation Failure) [PSYoungGen: 70870K->10356K(73728K)] 303790K->243340K(466944K), 0.0193899 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
2018-05-21T20:10:12.222-0400: 20070.453: [GC …Run Code Online (Sandbox Code Playgroud)