我有一个Java应用程序,该应用程序是其他应用程序的包装(需要支持> = SSE4_1)。
因此,我希望能够在我的Java应用程序中检测可用的CPU功能(指令集)。我尚未找到有关如何在Java中执行此操作的解决方案,一种解决方法是使用Google的“ cpu_features” C库并创建一个以0或1退出的简单帮助程序工具。但这也需要我编译C应用程序适用于所有平台,并不是真正的优雅解决方案。在Linux上,您可以选择cat /proc/cpuinfo
,但在Windows上则不能。
然后,CPU上的可用功能与OS actually支持的功能(这是您需要的结果)也有所不同。
有人可以在这里给我指导吗?预先谢谢!
没有跨平台的方法可以做到这一点。 (即使忽略x86标志在非Intel / AMD平台上也没有意义!)
我能想到的最接近的是为cpu_features
C库编写一个JNI包装器;参见https://github.com/google/cpu_features。检查兼容性矩阵以了解您可以获得的平台依赖性程度。