PetraVM Jinx Beta 1好吗?

时间:2010-03-15 16:06:17

标签: multithreading testing concurrency

PetraVM最近发布了他们的Jinx产品的Beta版本。还有人检查过吗?有什么反馈吗?

好的,我的意思是:

1)易于使用 2)直观 3)有用 4)不需要很多代码来集成

......那些事情。

谢谢你们!

2 个答案:

答案 0 :(得分:2)

在谷歌逛到Jinx的同时磕磕绊绊之后,我已经进行了测试和预测试测试,并且已经有了相当多的用法。与任何与beta相关的评论一样,请理解事情可能会发生变化或已经发生变化,因此请记住这一点,并采取以下措施。

所以,逐个查看问题清单:

1)安装并开始使用。 Jinx为Visual Studio添加了一个控制面板,您可以忽略它,因为默认情况下大多数情况下通常都是好的。否则你只是正常工作而忘记它。 Jinx不会检测您的代码,需要链接任何其他库或某些工具需要的其他东西。

2)“直觉”的问题取决于用户。如果您了解线程代码和各种错误,Jinx只会更频繁地发生这些错误,这对于执行线程代码的人来说本身就是一个巨大的好处。虽然Jinx试图在使问题尽可能明显的状态下停止代码,但“显而易见”和“直观”实际上取决于程序员的技能。

3)有用吗?之前已完成线程代码的任何人都知道竞争条件可以定期发生,或者每月根据宇宙射线计数发生一次,随机性使调试线程代码变得非常困难。对于Jinx来说,即使是最小的比赛条件也可以在第一轮比赛中一致地再现。这甚至适用于其他静态分析或仪器工具通常会遗漏的无锁代码。

这种快速复制问题非常有用。 Jinx帮助我找到了“错误地点的一条指令”,这种错误最多每周会发生一次。 Jinx几乎立即迫使事故发生,让我专注于故障的实际原因,而不是完全处于黑暗状态,而不是真正的来源。

4)与Jinx的整合是轻而易举的。如果您不介意机器变得有点慢,您可以告诉Jinx观看整台机器。它会降低机器速度,因为它实际上正在监视机器上的所有内容,包括操作系统。如果您的软件在同一台机器上由多个进程组成,那么有趣且有用,但不建议这样做,因为使用该机器会变得很痛苦。

不是使用全局系统,而是添加一个包含和两行代码,而是使用Jinx注册流程所需的主要工作,以便Jinx只能查看已注册的项目。您可以通过使用Jinx特定断言并注册更重要的代码区域来帮助Jinx。在上面提到的崩溃的情况下,我没有做任何这些,并且Jinx在没有额外集成工作的情况下发现了问题。无论如何,整合非常简单。

在过去几个月使用Jinx之后,我不得不说整体而言非常愉快。我不会在没有Jinx在后台运行的情况下编写新的线程代码,因为它的目的是迫使模糊的线程问题立即断言/崩溃。如上所述,你可以在没有看到几周的情况下几乎立即成为问题,这在初始测试和实施过程中是一件很棒的事情。

KRB

答案 1 :(得分:1)

BTW,PetraVM已更名为Corensic,你可以在www.corensic.com找到Jinx Beta 2。

- Corensic的营销人员Prashant