问题标签 [instrumentation]
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.
wpf - 检测 UI
你是如何检测你的 UI 的?在过去,我读到人们已经对他们的用户界面进行了检测,但我没有找到关于如何检测 UI 的示例或提示。
通过检测,我的意思是收集有关系统使用和性能的数据。有关 Instrumentation 的 MSDN 文章是http://msdn.microsoft.com/en-us/library/x5952w0c.aspx。我想捕捉用户点击了哪些按钮、他们使用了哪些键盘快捷键、他们使用哪些术语进行搜索等。
- 你是如何检测你的用户界面的?
- 您存储仪器的格式是什么?
- 您如何处理检测数据?
- 您如何使用此检测逻辑保持 UI 代码干净?
具体来说,我正在 WPF 中实现我的 UI,因此与检测基于 Web 的应用程序相比,这将带来额外的挑战。(即需要将检测数据传输回中心位置等)。也就是说,我觉得该技术可以通过附加属性等概念提供更容易的检测实现。
- 您是否检测过 WPF 应用程序?您对如何实现这一点有任何提示吗?
编辑:以下博客文章提供了一个有趣的解决方案:Pixel-In-Gene 博客:WPF 应用程序的 UI 审核技术
database - 检测数据库访问
Jeff 在其中一个播客中提到,他经常做的一件事是对数据库调用进行检测,这样他就可以判断是哪些查询导致了缓慢等。这是我过去使用 SQL Profiler 测量过的,但是我对其他人使用什么策略将其包含在应用程序中很感兴趣。
这仅仅是在每个数据库调用中包含一个计时器并记录结果的情况,还是有一种“更简洁”的方法?也许已经有一个框架可以为您执行此操作,或者是否有一个我可以在例如 Linq-to-SQL 中启用的标志,它可以提供类似的功能。
我主要使用 c#,但也有兴趣查看来自不同语言的方法,并且我对通过 SQL Profiler 等数据库平台方法执行此操作的“代码”方式更感兴趣。
interop - 是否可以对互操作程序集进行代码覆盖率分析?
我也在 MSDN 论坛上问过这个问题,但没有找到解决方案:
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3686852&SiteID=1
正如我所看到的,这里的基本问题是互操作程序集实际上不包含任何可以检测的 IL(可能除了一些委托之外)。因此,尽管我可以将一个测试项目组合在一起来练习互操作层,但我无法了解我实际调用了多少这些方法和属性。
计划 B 是编写一个代码生成器,该生成器创建一个 RCWW(运行时可调用包装器包装器)库,并为代码覆盖目的进行检测。
编辑:@Franci Penov,
是的,这正是我想要做的。交付给我们的 COM 组件构成了一个包含大约十几个 DLL 的库。3000种。我们在我们的应用程序中使用该库并负责测试该互操作层,因为向我们提供库的小组只进行了最少的测试。代码覆盖率将使我们能够确保所有接口和 coclass 都得到执行。这就是我正在尝试做的所有事情。我们有单独的测试项目来运行我们自己的托管代码。
是的,理想情况下,COM 服务器团队应该测试和分析他们自己的代码,但我们并不生活在一个理想的世界中,我必须根据他们的工作交付高质量的产品。如果可以生成一份测试报告,表明我已经测试了他们 80% 的代码接口并且其中 50% 的代码接口没有像宣传的那样工作,那么我可以在需要修复的地方完成修复,而不是解决问题。
您提到的模拟层会很有用,但最终不会实现测试互操作层本身的目标,而且我当然不想手动维护它——我们受 COM 人员的摆布接口的变化。
就像我上面提到的那样——下一步是为包装器生成包装器,并为测试目的检测这些包装器。
c# - .NET BCL 中的跟踪与调试
看来
大体上是相同的,除了Debug使用是在发布配置中编译出来的显着例外。
你什么时候用一个而不用另一个?到目前为止,我找到的唯一答案就是您使用Debug类生成只能在调试配置中看到的输出,并且Trace将保留在发布配置中,但这并不能真正回答我的头。
如果你要检测你的代码,你为什么要使用Debug,因为Trace可以在不重新编译的情况下关闭?
linux - 在 Linux 中使用“top”作为半永久性工具
我试图找到在开发运行嵌入式 Linux 的机器时使用“top”作为半永久性工具的最佳方法。(仪器将从最终测试和生产版本中删除。)
我的第一遍是简单地将其添加到 init.d:
这每 15 秒以“批处理”模式运行一次。假设 /tmp 有足够的空间……</p>
问题:
- 15 秒是通用监控的好选择吗?
- 除了磁盘空间,这对系统状态的干扰有多严重?
- 像这样可以使用哪些其他(也许更好的)工具?
c# - winforms 仪表。
什么是仪器的最佳模式。我有一个应用程序,我希望能够在每次用户在应用程序中执行多项功能(打开表单、查看某个功能等)时跟踪指标,但我不想在整个应用程序中都有代码正在做这个仪器。我在这里有什么选择?
归根结底,我希望能够汇总多个用户列出指标的数据。
c# - AOP for winforms
How to capture user clicks in a winform application without making the code very complicated? is AOP the answer? How to track instrumentations?
c# - winforms 应用程序的轻量级工具
我有一个 winforms 应用程序,我想跟踪用户每次点击某些按钮等以及其他操作。什么是我跟踪这些信息的最佳方式,然后将它们放在一起,以便我可以针对最常用的功能等运行指标。
这是一个 winforms 应用程序,我在世界各地都有用户。
java - 插入 Java 编译器
我有一个操作生成类的 Java 字节码的后编译步骤。我想让图书馆消费者的生活尽可能轻松,所以我正在寻找可以使这个过程自动化并且(如果可能的话)编译器不可知的方法。
Annotation Processing API提供了许多所需的特性(自动服务发现;由 Eclipse 支持)。不幸的是,这是针对代码生成器的,不支持对现有人工制品的操作:
该工具的初始输入被认为是由第零轮创建的;因此,尝试创建与这些输入之一对应的源文件或类文件将导致 FilerException。
API 推荐的装饰器模式不是一个选项。
我可以看到如何使用运行时代理/仪器执行该步骤,但这是比手动构建步骤更糟糕的选择,因为它需要任何被 API 接触的人以不明显的方式配置他们的 JVM。
java - 在 Java 中创建数组时是否调用了 Object 构造函数?
在 Java 中,数组是一个对象。我的问题是......创建新数组时是否调用了 Object 构造函数?我们想使用这个事实来使用一些额外的字节码来检测对象构造函数,以检查正在构造的数组的长度。那行得通吗?