![]() |
1
2
你需要告诉我们更多关于硬件和操作系统,还有具体的Java版本。你是如何衡量这个吞吐量的? 正确的做法是,强制/同步应将数据强制输出到物理媒体。 这是原版的拷贝。在IntelMac上用GCC4.0编译应该是干净的。
|
![]() |
2
8
实际上,在C语言中你只想打电话
如果你
我不知道为什么在将“sync”作为命令调用时看不到任何区别:但显然,在第一次同步调用之后,后续的调用通常要快得多。再说一次,我倾向于爆发
|
![]() |
3
3
最好使用同步I/O数据完整性完成。但是,您的C样本使用的方法不正确。你用
如果要将单个文件的块写入磁盘,则需要使用
这个
|
![]() |
4
0
C代码可能是次优的,因为它使用stdio而不是raw os write()。但是,Java可以更优化,因为它分配更大的缓冲区? 不管怎样,你只能相信Apidoc。剩下的超出了你的职责范围。 |
![]() |
5
0
(我知道这是一个非常晚的回复,但我在谷歌搜索时遇到了这个线索,这可能也是你在这里的结局。) 您在爪哇上的调用Syc()在单个文件描述符上,因此只有与该文件相关的缓冲区才被刷新到磁盘。 在C和命令行中,您在整个操作系统上调用sync(),所以每个文件缓冲区都会被清空到磁盘上,因为您的O/S正在做什么。 要进行比较,C调用应该是到syncfs(fp); 从Linux手册页:
|