谷歌搜索時,我發現使用java.io.File#length()可能很慢。 FileChannel有一個size()方法也可用。在java中有一種有效的方法來獲取文件大小嗎?
3 回答
一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
本文中的所有測試用例都存在缺陷,因為它們為每個測試方法訪問相同的文件。因此,磁盤緩存會在測試2和3中受益。為了證明我的觀點,我采用GHAD提供的測試用例并更改了枚舉的順序,以下是結果。
看結果我認為File.length()真的是贏家。
測試順序是輸出的順序。您甚至可以看到我的機器所執行的時間在執行之間有所不同,但File.Length()不是第一次,并且贏得了第一次磁盤訪問。
---
LENGTH sum: 1163351, per Iteration: 4653.404
CHANNEL sum: 1094598, per Iteration: 4378.392
URL sum: 739691, per Iteration: 2958.764
---
CHANNEL sum: 845804, per Iteration: 3383.216
URL sum: 531334, per Iteration: 2125.336
LENGTH sum: 318413, per Iteration: 1273.652
---
URL sum: 137368, per Iteration: 549.472
LENGTH sum: 18677, per Iteration: 74.708
CHANNEL sum: 142125, per Iteration: 568.5
添加回答
舉報
0/150
提交
取消
