小编eha*_*rik的帖子

没有系统调用的**nix sync()的Java实现

我正在努力从现有的Java代码库中删除所有系统调用.我们在商业提供的闭源JVM中运行我们的应用程序.当JVM通过getRuntime.exec()进行系统调用时,java会调用整个JVM进程分支,从而导致严重的性能命中.我们在Linux平台上运行,但最好尽量保持便携性.

我遇到的问题是通过getRuntime.exec()方法替换我们当前使用的sync()调用.我知道有这个 sync()方法和flush().基于这篇文章,我希望进行同步并刷新所有打开的文件流.

我的问题是我不知道那里有什么文件流和描述符.我认为解决这个问题的方法是检查/ proc /(jvm进程号)/ fd文件夹,但我找不到使用纯java可靠地获取JVM进程号的好方法.我以为我可以获得某个类的所有对象(FileDescriptor类)但是从我正在阅读的内容中也是不可行的.

有没有人有关于如何在纯java中复制*nix sync()调用的建议?

java system-calls

5
推荐指数
1
解决办法
407
查看次数

标签 统计

java ×1

system-calls ×1