标签: performance-monitor

如何在Android上获取CPU使用情况统计信息?

我想获得Android上的整体CPU使用率,类似于Windows的任务管理器.我可以解析topAndroid中包含的程序的输出,但如果有一个API调用做同样的事情,那就更好了.

有什么指针吗?

android processor cpu-usage performance-monitor

21
推荐指数
2
解决办法
4万
查看次数

反应本机性能监视器

这感觉就像一个愚蠢的问题,但各种数字对反应原生的性能监视器意味着什么?我无法在文档中找到.

性能监视器反应原生

我理解RAM.还有什么?这两个单独的数字对于视图意味着什么?那是每秒帧数吗?为了能够使用这个工具,我应该阅读什么?这个工具有多可靠?我应该以什么基准为目标?

performance performance-monitor ios react-native

9
推荐指数
1
解决办法
1843
查看次数

计时特定的 fetch 调用

我正在像这样进行 fetch 调用,fetch("foo.com/x.json")并希望获得在开发工具中报告的发出请求所需的时间。

我已经试过了,

performance.mark("fetch-start");
let start = performance.now();
let res = fetch("https://example.com/foo.json", {});
res.then(r => {
  performance.mark("fetch-end");
  performance.measure("fetch", "fetch-start", "fetch-end");
  var measures = performance.getEntriesByName("fetch");
  var measure = measures[0];
  console.log(measure);
});
Run Code Online (Sandbox Code Playgroud)

也尝试过performance.now() -start,但它们不如 devtools 准确,我猜这是因为浏览器一次做不止一件事,并且没有花时间孤立地测量事物。

有没有办法获得与开发人员工具一样准确的网络计时?

javascript browser performance-monitor fetch-api

9
推荐指数
2
解决办法
1582
查看次数

确定Web角色实例的关联w3wp进程

我正在努力监控Azure服务的性能.

目前有两个Web角色实例(针对同一网站)运行 - 每个实例都有自己的W3WP.exe(w3wp和w3wp#1)

如何找出哪个w3wp进程属于哪个角色实例?

有了这些信息,我想给azure.diagnostics.monitor提供一些性能计数器 - 即Process(w3wp)\ ProcessorTime(%)和Thread Count.但是为了获得任何有意义的数据,我必须将w3wp进程的进程ID附加到性能计数器(例如Process(w3wp_PID)\ processorTime(%)) - 不知道语法是否正确,但有一种方法可以附加PID)

所以AzureStorage表中的最终结果WADPerformanceCounters只有以下条目:

WebRoleInstance_n_0 | process(w3wp_1033)\processorTime (%) |  12.4
WebRoleInstance_n_1 | process(w3wp_1055)\processorTime (%) |  48.4
Run Code Online (Sandbox Code Playgroud)

atm就像

WebRoleInstance_n_0 | process(w3wp)\processorTime (%) |  12.4
WebRoleInstance_n_1 | process(w3wp)\processorTime (%) |  12.4
Run Code Online (Sandbox Code Playgroud)

我想:如果我为每个角色启动了DiagnosticsMonitor,那么监视器将使用正确的进程 - 属于启动监视器的Roleinstance.但实际上这不起作用 - 或者我认为它不起作用 - 至少在查看结果值之后.

// update:在manage.windowsazure门户上,您可以为性能监视定义自定义指标.这里可以选择专门监控的webrole实例.这也是我想要做的.对此页面实际执行的操作的见解也可能有所帮助.

比较:http: //puu.sh/1xp7q

他们只想到获取此信息的愚蠢方式是:获取每个w3wp启动前后所有进程的列表 - 确定添加了哪个进程,然后确定代码库上下文明智地启动了哪个角色实例.

multiple-instances w3wp azure performance-monitor azure-web-roles

6
推荐指数
1
解决办法
1270
查看次数

URL重写是否阻止IIS的静态文件缓存?

如果我激活IIS重写模块文件缓存命中计数器不会增加.

我正在通过性能监视器跟踪命中(perfmon.exe/Web服务缓存/文件缓存命中)

如果我取消激活重写"文件高速缓存命中",则根据IIS高速缓存算法正常增加.

在两种情况下,请求的文件都是静态html文件.

URL重写是否阻止IIS的静态文件缓存?

iis performance caching url-rewriting performance-monitor

5
推荐指数
1
解决办法
1901
查看次数

使用PowerShell脚本从性能监视器发送电子邮件警报

我在性能监视器(Windows Server 2008 R2)中创建了一个警报,应该在\处理器(_Total)\%处理器时间超过10时触发(一个小值只是为了保证始终满足发送警报的条件).您可以在图像中看到警报任务属性.

在此输入图像描述

此外,我还在Task Scheduler中创建了一个新任务,无论用户是否登录,它都将运行,并且它将以最高权限运行.此任务的触发器具有以下属性:

  • 开始任务:在一个事件上
  • 设置:基本
  • 日志:系统
  • 来源:处理器

动作(这是我不知道它是否正确的部分)具有以下设置:

  • 行动:启动一个程序
  • 程序/脚本:发送电子邮件的PowerShell脚本的路径.

PowerShell代码如下($ name,$ date,$ counter,$ threshold,$ value应该来自性能监视器数据收集器集警报任务属性,如上图所示):

function SendMail ($name, $date, $counter, $threshold, $value) {
  $MailMessage = New-Object Net.Mail.MailMessage
  $MailMessage.To.Add("myemail@blah.bleh")
  $MailMessage.From = "do-not-reply@blah.bleh"
  $MailMessage.Subject = "ALERT - Performance Monitor"
  $MailMessage.IsBodyHtml = $True

  $MailMessage.Body = @"
    <html><head></head><body>
    The following counter needs attention:<BR><BR>
    Name: $($name)<BR>
    Date: $($date)<BR>
    Counter: $($counter)<BR>
    Threshold: $($threshold)<BR>
    Actual Value: $($value)<BR>
    <FONT face=Courier>$($html)</FONT>
    <BR>
    --- Automatically generated with SENDMAIL function ---
    </body>
    </html>
"@

  $SmtpClient = New-Object …
Run Code Online (Sandbox Code Playgroud)

email powershell alert performance-monitor windows-server-2008-r2

5
推荐指数
1
解决办法
1万
查看次数

.net 应用程序中的内存泄漏 + 奇怪的 GC 行为

我不完全确定去哪里寻求帮助,所以我想我会尝试 stackoverflow,因为它通常可以回答我所有编程相关问题的大约 90%。

简而言之,我有一个正在泄漏内存的开源 .NET 应用程序。从某种意义上说,这可能不是真正的内存泄漏,当应用程序关闭时,我怀疑内存被回收,但在它运行时,它不断分配更多内存而不释放它。最终,aSystem.OutOfMemoryException被抛出。

为了调试问题,我按照本文推荐的步骤操作,并生成了下图,其中红色是 .NET/CLR 内存“#Bytes in all Heaps”,绿色是带有 Windows 性能监视器工具的进程“Private Bytes” (请注意,绿线已按比例缩小以更接近红线,因为只有线条的形状对我很重要):性能监视器输出

我将图像作为托管内存泄漏的证据,然后使用 Windows 的调试诊断工具来尝试定位泄漏源(如文章中所述)。然而,我从 Debug Diagnostic Tool 得到的报告非常奇特。

基本上,我在应用程序运行时每 5 秒尝试收集一次“完整 UserDump”的每次尝试都被垃圾收集器当时始终处于垃圾收集周期的中间这一事实所挫败,导致调试诊断输出错误并防止其收集任何有用的 .NET 内存相关信息的工具。

现在我被卡住了,我知道我有一个托管内存泄漏,但我不知道如何缩小它的范围。我也对垃圾收集器如何总是处于收集周期的中间感到困惑,这让我想知道垃圾收集线程是否以某种方式被阻塞,阻止它释放内存和/或退出垃圾收集周期。

性能监视器图的某些部分分配的 .NET 内存略有下降,因此垃圾收集器不会永远卡住,但大部分时间肯定都卡住了,否则调试诊断应该能够做到用户转储。

几个问题:

  1. .NET 应用程序中的垃圾收集器是否有可能在尝试释放一些内存时卡住,也许是从一些编码不佳的析构函数/终结器或其他东西?

  2. 我可以使用什么策略来继续缩小问题的来源?

.net memory-leaks performance-monitor debugdiag

4
推荐指数
1
解决办法
1405
查看次数

2
推荐指数
1
解决办法
8978
查看次数