嗨,试着理解零拷贝原理。维基百科说
一些操作系统支持通过特定的APIs对文件进行零复制。 Linux内核通过各种系统调用(如sys/socket.h的sendfile、sendfile64和splice )支持零拷贝。其中一些是在POSIX中指定的,因此也存在于BSD内核或IBM AIX中,有些是Linux内核API特有的。 Microsoft支持通过TransmitFile API实现零拷贝. 如果底层操作系统也支持零拷贝,Java输入流可以通过java.nio.Channel els.FileChannel的transferTo()方法支持零拷贝。
我没有看到任何提及OSX,虽然它说,目前在BSD内核。
但http://www.bigfastblog.com/zero-copy-transfer-data-faster-in-ruby博客称它在OSX中不受支持。
发布于 2015-06-14 03:09:43
OS X有一个发送文件的手册页。虽然它没有引用零拷贝,但它确实将sendfile称为系统调用(与打开/读/写/关闭的包装器相反),所以我认为假设它不涉及将文件复制到用户空间是非常安全的。
https://stackoverflow.com/questions/30772456
复制相似问题