PetraVM最近发布了他们的Jinx产品的测试版。有没有人检查过它?有什么反馈吗?
好,我的意思是:
1)易于使用2)直观3)有用4)集成不需要太多代码
..。这类事情。
谢谢你们!
发布于 2010-03-18 22:01:35
在浏览Google时偶然发现了Jinx之后,我一直在进行beta和pre-beta测试,已经有了相当多的使用情况。与任何测试版相关的评论一样,请理解,事情可能会改变,或者已经改变了,所以请记住这一点,并对以下内容持保留态度。
因此,逐一查看问题列表:
1)安装后即可使用。Jinx向Visual Studio添加了一个控制面板,您可以忽略它,因为默认设置通常适用于大多数情况。否则,你只是正常地工作,然后忘记它。Jinx不会插装你的代码,需要任何额外的链接库,或者一些工具需要的许多其他东西。
2)“直观”的问题实际上是由用户决定的。如果您了解线程化代码和各种可能的bug,Jinx会使这些bug更频繁地发生,这本身就是一个巨大的好处。虽然Jinx试图在一种使问题尽可能明显的状态下停止代码,但“显而易见”和“直观”实际上取决于程序员的技能。
3)有用吗?任何以前做过线程化代码的人都知道,基于宇宙射线计数,竞争条件可能会定期或每月发生一次,这种随机性使得调试线程化代码非常困难。使用Jinx,即使是最小的竞态条件通常在第一次运行时也可以一致地重现。这甚至适用于其他静态分析或检测工具通常会遗漏的无锁代码。
这种问题的快速再现非常有用。Jinx帮助我找到了一种“在错误的地方执行一条指令”的bug,这种bug实际上一周最多出现一次。Jinx迫使崩溃几乎立即发生,并允许我专注于bug的实际原因,而不是完全不知道真正的来源。
4)与Jinx的集成轻而易举。如果你不介意你的机器变得有点慢,你可以让Jinx监视整个机器。它会减慢机器的速度,因为它实际上正在监视机器上的所有东西,包括操作系统。如果您的软件由同一台计算机上的多个进程组成,那么不建议这样做,因为使用该计算机可能会变得很痛苦。
不是使用全局系统,而是添加一个include和两行代码来完成向Jinx注册进程所需的主要工作,以便Jinx可以只监视已注册的项。您可以通过使用特定于Jinx的断言和注册更重要的代码区域来帮助Jinx。但是,在上面提到的崩溃的情况下,我不需要做任何这些,Jinx在没有额外的集成工作的情况下发现了问题。在任何情况下,集成都非常简单。
在使用了过去几个月的Jinx之后,我不得不说,总的来说,这是一种很大的乐趣。我不会在没有Jinx在后台运行的情况下编写新的线程代码,因为它完成了它的预期工作,即将模糊的线程问题立即断言/崩溃。正如前面提到的,你可能几个星期都看不到的东西几乎马上就会出现问题,这是在初始测试和实现期间拥有的一件奇妙的事情。
KRB
发布于 2010-07-30 06:02:32
顺便说一句,PetraVM已经更名为Corensic,你可以在www.corensic.com上找到Jinx Beta2。
--Prashant,Corensic的营销人员
https://stackoverflow.com/questions/2448575
复制相似问题