【发布时间】:2015-08-26 15:45:33
【问题描述】:
Hi 试图理解零拷贝原则。维基百科说
一些操作系统支持文件的零拷贝,通过 特定的 API。
Linux 内核通过各种系统调用支持零拷贝,例如 作为 sys/socket.h 的 sendfile、sendfile64 和 splice。他们之中有一些是 在 POSIX 中指定,因此也出现在 BSD 内核或 IBM AIX,有些是 Linux 内核 API 独有的。
Microsoft Windows 通过 TransmitFile API 支持零拷贝。
Java 输入流可以通过 java.nio.channels.FileChannel 的 transferTo() 方法如果底层 操作系统也支持零拷贝。[4]
虽然它说存在于 BSD 内核中,但我没有看到任何提及 OSX。
但是http://www.bigfastblog.com/zero-copy-transfer-data-faster-in-ruby 博客说它在 OSX 中不受支持。
【问题讨论】:
标签: java linux macos operating-system