问题标签 [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.

0 投票
1 回答
578 浏览

c++ - Agilent E4426B 信号发生器在多个 GPIB *SAV 操作期间锁定

我有一个带有 Agilent E4426B 射频信号发生器的测试夹具,它通过 National Instrument 以太网到 GPIB 桥接器连接到 PC。我的软件试图通过预设仪器来清理仪器,然后将当前状态保存到所有可通过标准 SCPI 命令“*SAV x,y”写入的内存位置。

循环工作到一定程度,但最终仪器以错误响应并在前显示屏上持续显示“L”图标,并在底部显示“远程预设”消息。那时它不会再响应任何远程命令,我必须循环电源或按 LOCAL,然后按 PRESET 大约需要 3 分钟才能完成预设。此时“L”图标仍然存在,并且发送到仪器的下一个 GPIB 命令会导致它在仪器错误队列中报告 -113 错误(未定义的标头)。

我启动了 NI spy 来查看发生了什么,发现错误发生在循环中的同一点——在这种情况下为“*SAV 6,2”。来自 NI 间谍:

发送 (0, 0x0017, "*SAV 6,2", 8 (0x8), NLend (0,0x01))
进程 ID: 0x00000520 线程 ID: 0x00000518
ibsta:0xc168 iberr: 6 ibcntl: 2(0x2)

这是仪器驱动程序的代码:

我尝试在内部循环的末尾放置一个小的 Sleep() 延迟(10-20 毫秒),令我惊讶的是,它导致错误出现得更早而不是更晚。10 ms 导致循环在 44,1 处出错,而 20 ms 甚至更快。我已经消除了故障电缆或仪器作为罪魁祸首。这种相同类型的序列在高端信号发生器上没有任何错误,所以我很想把这归咎于仪器固件中的错误。

0 投票
2 回答
491 浏览

java - 在 BTrace 中将 char[] 转换为 String

我正在使用btrace分析应用程序并面临限制。我尝试获取 current 的名称java.lang.Thread。通常你可以调用getName(),但在 btrace-scripts 中是禁止的(任何调用异常BTraceUtils)。
有什么想法如何从中获取 Stringchar[]吗?

最初的任务是检查线程名称是否包含子字符串,然后才注销跟踪信息(减少输出)。

0 投票
2 回答
587 浏览

python - Python中数值线性代数的检测

我将 numpy 用于数值线性代数。例如,我怀疑如果我对执行某些计算的方式进行一些小修改,从而提高内存效率,我可以获得更好的性能。

我想知道 python 中是否有任何形式的工具来检测缓存和 TLB 未命中。有一个非常好的 api,PAPI,我在最近的课程中了解到,但它没有 Python 接口:

http://icl.cs.utk.edu/papi/overview/index.html

另外,一般有没有一种很好的方法来分析 numpy 或其他 python 数字代码?timeit 模块很难集成到代码中。mpi4py 有一种很好的方式来使用 MPE 库进行分析。演示代码片段 (demo/mpe-logging/cpilog.py):

将创建一个可以以图形方式显示的日志文件。但这有点特定于 MPI。

谢谢。

0 投票
1 回答
170 浏览

c# - 具有并行任务时检测网页的最佳实践

我尝试了解网页的性能并使用 Trace.Write

问题是我使用 Parallel.Invoke 并启动了更多我想使用 Trace.Write 报告的线程

我已经意识到 Trace.Write 不是一种很好的跟踪方式,因为它为您提供了自上次输入以来的时间,如果有更多线程正在写入,这将毫无意义..

问题:有什么好的建议如何在使用并行库时检测页面,还是我需要编写自己的跟踪!?!?

0 投票
1 回答
1237 浏览

java - Ant 构建 - Emma 代码检测 - JUnit 测试需要接口,Emma 不检测它们

我有一个 Ant 构建文件,我在其中编译应用程序和测试的 Java 源代码,检测应用程序类,运行 JUnit 测试并生成 JUnit 和 Emma 代码覆盖率报告。JUnit 任务被赋予了被检测类的路径。

问题是接口没有被检测(Emma FAQ),但我在测试中使用它们并且 JUnit 找不到它们。

我可以想到2个解决方案:

  • 不要在测试中使用接口(违背对接口的编程——它是否计入测试?)
  • 复制检测类旁边的接口(硬编码接口的路径)

我应该如何处理和解决这个问题?

0 投票
2 回答
7931 浏览

android - 如何在仪器测试中将关键事件发送到无头模拟器?

我们目前正在开发一个在我们的构建服务器上运行的仪器测试套件,但是当测试在使用普通 Android 模拟器的开发机器上通过时,构建服务器上的构建失败,因为我们只运行带有-no-window标志的无头模拟器。

尝试调用InstrumentationTestCase.sendKeys()方法以编程方式打开选项菜单时发生故障。错误是:

权限被拒绝:将关键事件从 pid 646 uid 10026 注入到 uid 1000 拥有的窗口 Window{43d55100 paused=false}

然后我们发现有一个INJECT_EVENTS权限,但是在清单中设置它没有效果。事实上,在日志中我们看到了这样的输出:

未授予 android.permission.INJECT_EVENTS 包 com.qype.radar 的权限(protectionLevel=2 flags=0x6644)

这是否意味着此权限无用?

我们还尝试让仪器测试应用程序和被测应用程序使用相同的 Linux 用户 IDandroid:sharedUserId并在同一进程中运行(android:process我们不确定是否已经如此),但仍然没有运气。

这是否意味着目前无法在无头模拟器上运行包含关键事件的工具,或者我们错过了什么?

0 投票
1 回答
240 浏览

.net - 反汇编托管二进制文件以获取 .cs 代码

这可能吗?我有一个二进制文件,在检测时会引发访问冲突异常。我想逐步通过检测代码,所以我需要生成检测代码的源代码。有办法吗?

谢谢

0 投票
5 回答
39838 浏览

android - 如何将参数传递给使用 adb shell am Instrumentation 命令启动的测试函数

我正在使用 Android 进行开发,我正在使用仪器来测试电话应用程序。Instrumentation 是用于测试应用程序的 Android 环境。

为此,我使用带有测试用例名称的命令。我运行 adb,然后我进入 adb shell,然后在 shell 中写入 am 命令。

我希望与这个 am 命令一起提供一个参数。我的意思是我希望将参数传递给 am 命令启动的测试。

可能吗 ???请帮忙 ?

0 投票
1 回答
2847 浏览

.net - .Net 二进制反序列化 运行时平台的故障检测/取证

我正在寻找有关如何检测运行时平台以公开 Microsoft .Net 二进制反序列化失败的源类型的见解。

使用时BinaryFormatter.Deserialize(StreamingContextStates.CrossMachine),其中一种类型在当前二进制文件中不存在;.Net 没有抛出错误,而是插入了 object [TypeLoadExceptionHolder]。特别是对于集合,这不会立即引起问题。

随后,当集合被序列化以在应用层之间传输时;平台收到“序列化失败”,因为[TypeLoadExceptionHolder]无法序列化。因此,由此产生的错误对于实际提供有关导致问题的源类型的线索是无用的。现在正在寻找(时间很糟糕),看看哪个开发人员(数百名)向百万行平台添加了一种新类型。

由于用于支持平台会话缓存的序列化流,此问题经常发生。代码被相当频繁地以增量方式部署。客户页面请求可以在部署窗口期间在新旧版本的代码库之间反弹。不小心引入新类型会导致旧版本上的页面请求爆炸。

任何关于提供运行时丰富的错误/陷阱的想法将不胜感激。


0 投票
1 回答
592 浏览

c# - NHibernate、Oracle 和 sql 检测

希望我能以一种连贯且有意义的方式表达这一点:

在我发送一封电子邮件解释我们为什么使用 NHibernate 以及 ORM 框架的好处之后,我们的两个 DBA 找到了我。他们一直在努力重构我们的存储过程以包含这样的工具:

BEGIN DBMS_APPLICATION_INFO.set_module(module_name => '人力资源' ,action_name => '获取员工');

{这里的sql}

DBMS_APPLICATION_INFO.set_module(NULL, NULL);

我的问题确实围绕着我们如何实现这一点,是否有任何巨大的警告建议不要为此寻找实现,如果这太痛苦了,是否有替代方案。

提前谢谢你,-肖恩