当前位置: 代码迷 >> java >> 在生产代码中使用 JNA 的 Native.setProtected
  详细解决方案

在生产代码中使用 JNA 的 Native.setProtected

热度:19   发布时间:2023-07-18 08:51:28.0

我已经看到功能描述以“在定义新库和编写测试时遇到使 VM 崩溃的内存访问错误并不少见”开头。 这向我表明,这种崩溃保护真正用于调试/开发的早期阶段。 在生产中将其保留是否安全,或者是否存在我应该注意的大量性能成本/其他原因将其关闭?

对于 Windows,它在默认情况下处于开启状态并且安全地离开这种方式,因为它使用结构化异常处理来捕获错误(您仍然应该尝试正常关闭,因为无法保证捕获的错误可以以任何方式恢复)。

对于使用信号处理来捕获错误的平台,您可能应该在生产中使用它,因为 VM 本身使用相同的信号。 在开发中,您通常需要使用库,以便 JNA 能够在不干扰 JVM 的情况下正确捕获信号(反之亦然),并且您不太可能在生产中执行此操作。

没有性能成本,更多的是可靠性问题。

  相关解决方案