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

好的,我的意思是:

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

...这些东西。

谢谢你们!

最佳答案

在Google上闲逛时,在Jinx上绊了一下脚步之后,我一直在进行Beta版和Beta版测试,并且已经掌握了相当多的用法。与任何与Beta相关的评论一样,请理解情况可能会发生变化或已经发生变化,因此请记住这一点,并注意以下几点。

因此,逐一浏览问题列表:

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

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

3)有用吗?任何以前做过线程代码的人都知道,根据宇宙射线计数,竞争状况可能会定期发生或每月发生一次,随机性使调试线程代码变得非常困难。使用Jinx,通常即使在最次要的比赛条件下,也可以在第一轮比赛中始终如一地再现。即使对于其他静态分析或检测工具通常会丢失的无锁代码,此方法也适用。

这种快速重现问题的方法非常有用。 Jinx帮助我找到了“一个错误的地方的指令”这类错误,该错误实际上最多每周发生一次。 Jinx迫使崩溃几乎立即发生,并让我专注于错误的实际原因,而不是完全了解真正的来源。

4)与Jinx集成非常容易。如果您不介意机器变慢,可以告诉Jinx观察整个机器。由于它实际上正在监视机器上的所有内容,包括操作系统,因此会降低计算机的速度。如果您的软件由同一台计算机上的多个进程组成,这虽然很有趣并且很有用,但不建议这样做,因为使用该计算机可能会很痛苦。

无需使用全局系统,而是添加一个include和两行代码来完成向Jinx注册流程所需的主要工作,以便Jinx可以仅监视已注册的项目。您可以通过使用特定于Jinx的断言和注册更重要的代码区域来帮助Jinx。但是,在上述崩溃的情况下,我不必做任何事情,而Jinx在没有其他集成工作的情况下就发现了问题。无论如何,集成都非常简单。

在过去几个月中使用Jinx之后,我不得不说,总体而言,这是一种极大的乐趣。我不会在没有Jinx在后台运行的情况下编写新的线程代码,这仅仅是因为它完成了将晦涩的线程问题强制为立即断言/崩溃的预期工作。如前所述,您可能要花几周才能看到的东西几乎立即变成问题,这是在初始测试和实现过程中要做的一件奇妙的事情。

克雷伯

10-08 11:14