问题标签 [measurement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.net - 如何区分页面处理时间和客户端传输时间
博客中的单个时序栏自然包括客户端传输时序。对于异常分析,我想将构建时间过长的页面与客户端速度慢的请求区分开来。
对于缓冲页面,我查看了 ASP.NET 页面生命周期模型,但没有看到我可以利用的地方,并且在代码上仅测量页面刷新到客户端之前的页面处理时间。
我可能应该提到我的目标是生产监控(不是测试或开发)。此外,目的是使用此测量值注释网络日志以供以后分析。目前我们使用 Response.AppendToLog() 自由地注释博客。我相信使用 Response.AppendToLog() 的愿望在一定程度上限制了我的潜在日志点,例如,响应对象在 Application_EndRequest 中不可行。
任何见解将不胜感激。
metrics - 有人使用 ABC Metric 来测量应用程序的大小吗?
它有一些不错的东西(比如它封装了圈复杂度的概念),我想知道是否有人在“现实生活”中使用过它。如果是这样,你的经验是什么?它是衡量大小的有用指标(与 KLOC 或功能点相反)吗?
对于那些想知道我在抽什么烟的人:这里有一些关于它的信息的链接:http ://c2.com/cgi/wiki/Wiki?AbcMetric
.net - 收集有关应用程序使用情况的数据的最佳方法是什么?
我的公司发布了一个小型软件产品,我最近接手了该产品的开发工作。它是一个 C# Windows 窗体应用程序。
我注意到的一件事是,关于软件使用方式的大部分信息都是通过我的上级过滤的,我觉得我在某些信息中遗漏了重要的细节。
我意识到我必须解决这种情况下的管理问题,但是为了对这个问题提出另一种看法,我一直在考虑采用技术解决方案。也许类似于“微软客户体验改善计划”。
我想知道是否有人在他们的应用程序中监控和报告用户行为有任何经验或建议?
.net - 限制程序集执行的 cpu 周期数
我有一个项目可以动态加载实现指定接口的未知程序集。除了实现我的接口之外,我不知道程序集的内容或目的。
我需要以某种方式限制这些组件可用的处理能力。处理器优先级不是我想要的。我不能使用秒表并为程序集分配一定的时间来运行,因为服务器可能会很忙。
理想情况下,我想指定一些完全独立于负载的 CPU 使用量度量。如有必要,我可以在自己的进程中运行程序集。
有没有办法以某种方式测量给定线程(或进程,尽管线程是最佳的)的总超时 CPU 使用率?
我可以使用进程性能计数器,还是我怀疑它们太不可靠了?虽然我不需要循环精度,但我需要相当高的精度来限制分配给每个程序集执行的计算能力。
根据我的情况推断一下。我不寻找进程优先级的原因是我不害怕耗尽我的资源,我只需要确保我可以测量给定程序集使用的“多少”资源 - 因此我关于服务器的观点是任意的忙碌的。
想象一下您有两个程序集 X 和 Y 的示例场景。它们中的每一个都实现了一个给定的算法,我想对哪个程序集可以最快地完成工作进行原始测试。我运行每个程序集并让它运行,直到它使用“Z”资源,此时我评估哪个程序集做得最好。在这种情况下,我不介意一个程序集以 100% CPU 运行 3 秒,而另一个程序集以 2% CPU 运行 5 分钟 - 总资源使用量很重要。
我想我也许可以使用 CPU time perfcounter 来做一个粗略的限制。在一个新线程中运行每个程序集并让它运行,直到它使用给定的 CPU 时间,此时我将终止该进程并评估结果。我只是怕它不够准确。
performance - 您如何衡量页面加载速度?
我正在尝试量化“站点缓慢”。在过去,您只需确保您的 HTML 是轻量级的、图像经过优化并且服务器不会超载。在建立在现代内容管理系统之上的高端网站中,存在更多变量:第三方广告、跟踪器和各种其他标注、CDN 的性能(有趣的是,有时内容交付网络会使事情变得更糟)、javascript 执行、css 过载,以及各种服务器端问题,如长查询。
显而易见的答案是每个开发人员都清除缓存并不断查看 Firebug 插件的“网络”部分。您还使用了哪些其他方法来衡量“网站拖屁股”?
c - 嵌入式软件的 Mips 计算
客户最近(并且反复)向我询问运行我们的软件所需的MIPS 。通常我们能够通过向客户解释这实际上取决于 cpu/os/hw(我们的软件是高度可移植的)和/或用例(即我们的软件如何使用)来摆脱这个问题。
但我有最后一个,不仅非常固执,而且还提供了固执的充分理由。:) 他想要估价,因为他不确定自己是否有足够的能力运行我们的软件,所以在估价之前购买软件是不合逻辑的。(我们无法提供演示/评估,因为在此特定平台上运行需要大量工作。)
现在的问题是:有人在使用任何软件的任何硬件上都有过此类任务的经验吗?任何现实生活中的例子都会非常有帮助。我可以选择在许多操作系统和许多硬件上运行我们的软件。因此,如果您知道在任何硬件上进行此类估算的任何工具,那么我就有机会使用它,或者至少有一个想法。要知道我只知道如何测量eCosPro OS上的 CPU 负载。
编辑:
使用探针实际上是一个好主意,假设我可以创建一个控制环境,其中只有我的软件在运行我可以计算的所有指令都是我的,我猜探针有一个接口可以做到这一点。实际上,我有一些不同的硬件调试器,如果有人有经验如何做这将非常好,无论如何我明天将阅读一些文档,并希望能在这个方向找到一些东西。
java - 测量代码段的 Java 执行时间、内存使用和 CPU 负载
对于特定的 Java 代码段,我想测量:
- 执行时间(很可能是线程执行时间)
- 内存使用情况
- CPU 负载(具体归因于代码段)
我是一个相对的 Java 新手,不熟悉如何实现这一点。我被提到过JMX,但是我不确定如何使用它,而且 JMX 对于我想要做的事情来说看起来有点“沉重”。
理想情况下,我想要一些可以告诉我想要测量什么的测量类,可以选择start()
在代码段之前调用方法和stop()
之后调用方法。相关指标将记录到我指定的文件中。
例如:
在 Java 中是否有任何标准/通用/传统方式来实现这一点?
这样的测量是一次性的性能比较,所以我不是在寻找任何生产中的长期监控过程。
我很高兴被提及教程或外部示例,并且不期望在这里得到完整的答案。也就是说,如果可以实现上述任何简单的事情,那么一个现实的例子就会非常好。
performance - 有哪些应用程序可以在生成数据时传递数据并让它分析一些统计数据?
基本要求是从 C# 代码(托管代码或可以从命令中定期获取数据的东西)传递给某些命令类型和执行时间(可能还有其他数据,但这是我们目前关注的基本数据) line. 并对其进行一些统计分析:每种命令类型的平均时间、标准偏差、一些图表会很好,等等。
可以实时执行此操作的东西可能更可取,但我想我们自己保存数据并将其传递给分析也是可以接受的。
我们可以为此写一些东西,但似乎应该有一些东西可以用于此。
编辑:基本上是在寻找低学习曲线并且能够做上面提到的事情。基本上比手动编码更快学习和使用的东西。
c# - 如何测量 .NET 中多个并发线程的代码块(线程)执行时间
现在我们只使用这样的东西
这对于同步方法很有效,但有些是异步执行的,因此在执行多个线程时时间会出现偏差。是否有与 System.Diagnostics.Stopwatch 等效的仅测量当前线程中花费的时间?
我们希望在我们的内部测试版(alpha?)版本中收集较长时间的数据,并且在分析器下全职运行不是一个可行的选择。
编辑:为了澄清,我们只想测量执行 method() 所花费的时间,所以如果 Method1() 和 Method2() 同时开始并且 Method1 在 2 秒标记处完成, Method2 在 4 秒标记处完成,我想要的东西会告诉我 Method1 花了大约 1 秒执行,Method2 花了大约 3 秒执行(假设在前 2 秒内他们平等地共享(假设为单核)处理器。
bandwidth - 可编程网络诊断工具?
是否有任何可用的网络诊断工具可用于测量带宽等内容。
因此有很多工具可以做到这一点,但我需要一个可以嵌入到我的应用程序和程序中的工具。环境是 WinCE,但也请列出任何通用工具,最好是开源的。