NIO複製檔案的三種方式對比

2021-08-28 21:05:59 字數 1603 閱讀 7754

下面對nio複製檔案的三種方式進行對比:

@test

public void copyfirst()

} catch (filenotfoundexception e) catch (ioexception e) finallycatch(ioexception e)

}if(inchannel != null)catch(ioexception e)

}if(fos != null)catch(ioexception e)

}if(fis != null)catch(ioexception e)

}}

// 記錄結束時間

long endtime = system.currenttimemillis();

system.out.println("用通道完成檔案的複製(非直接緩衝區)耗時為" + (endtime - starttime) + "秒");

}

用通道完成檔案的複製(非直接緩衝區)耗時為1220秒

用通道完成檔案的複製(非直接緩衝區)耗時為1213秒

用通道完成檔案的複製(非直接緩衝區)耗時為1226秒

@test

public void copysecond() catch (ioexception e) finally catch (ioexception e)

}if(outchannel != null) catch (ioexception e)

}}

// 記錄結束時間

long endtime = system.currenttimemillis();

system.out.println("使用直接緩衝區完成檔案的複製(記憶體對映檔案)耗時為" + (endtime - starttime) + "秒");

}

使用直接緩衝區完成檔案的複製(記憶體對映檔案)耗時為107秒

使用直接緩衝區完成檔案的複製(記憶體對映檔案)耗時為112秒

使用直接緩衝區完成檔案的複製(記憶體對映檔案)耗時為107秒

@test

public void copythird() catch (ioexception e) finally catch (ioexception e)

}if(outchannel != null) catch (ioexception e)

}}

long endtime = system.currenttimemillis();

system.out.println("通道之間的資料傳輸(直接快取區)耗時為" + (endtime - starttime) + "秒");

}

通道之間的資料傳輸(直接快取區)耗時為73秒

通道之間的資料傳輸(直接快取區)耗時為64秒

通道之間的資料傳輸(直接快取區)耗時為68秒

不同複製操作對比(三種)

1.b a b 發生變化 a 也會發生變化 2.淺複製 c a.view c.shape 發生變化,a.shape 不會發生變化 c 和 a 共用元素值,id 指向不同 c 1,0 1234 a 的值也會發生變化 3.深複製 d a.copy d 0,0 999 d 發生改變,a 不會發生改變 im...

MySQL的三種連線方式對比

設定資料庫引數 define db user root define db password 123456 define db host localhost define db name testdb 初始化資料庫 if conn mysqli connect db host,db user,db ...

DRBD三種複製方式備忘

1.協議a 本地磁碟寫入成功,資料報已在傳送佇列中,就被認為是完成操作,通俗點講就是在主節點寫入已經成功後,但是資料報還在傳送佇列中,並沒有到達備用節點,就被主節點認為是完成了全部的讀寫操作,顯然可能在備用節點如果發生故障時,並沒有收到資料報,主節點也認為資料已經傳送成功,顯然不合理,這種主要用在地...