文件拷贝效率与操作系统

内核态空间:

操作系统底层分为内核态空间和用户态空间。其中系统内核和硬件驱动等都属于内核态空间,它拥有较高的特权。

用户态空间:

则是普通应用和服务所在的空间

数据拷贝的方法:

数据拷贝主要有以下3种方法:

a .使用inputstream 和outputstream。然后使用inputstream的read()方法读取数据,outputstream的write()方法写数据。

b.使用IO库的TransferTo 方法。

c.使用java基本库的files.copy() 方法。

根据操作系统底层特性,在我们进行数据读取和输入操作的时候,其实需要将数据从内核空间读取到内核缓存,然后用户缓存在将数据读取出来。因此比较上面说的3种方法的效率的话,最高的是TransferTo 方法,因为可以达到一个零拷贝的效果,把需要处理的文件直接从内核空间中读取出来,这样就避免了过多的上下文切换,提高了效率。

猜你喜欢

转载自blog.csdn.net/puzimengya/article/details/81135649