繁体   English   中英

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

[英]Using JNA's Native.setProtected in production code

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM