找尋的目錄dir,目錄下有多層目錄共38006個檔案(沒有順序)。
方法1:使用 shell script 管線導向來實現
程式碼:https://ideone.com/e.js/E0W01z
所需時間:1.085s
方法2:遞迴目錄下的每一檔案並製成HASH索引,讀取檔案清單,依清單比對HASH
程式碼:https://ideone.com/HDhrp6
所需時間:1.298s
方法3:讀取檔案清單1,然後遞迴目錄下的檔案比對,檔案清單2,遞迴目錄下的檔案比對...
程式碼:https://ideone.com/1a2BWb
所需時間:6.588s
方法4:讀取檔案清單製成HASH索引,然後遞迴目錄下的每一檔案比對HASH。
程式碼:https://ideone.com/hbZekq
所需時間:1.261s
由上可知效率上來說:方法1 > 方法4 > 方法2 > 方法3
利用 bash command 和管線(pipe line) 可以快速達到這個結果,如果只是想查看搜尋結果可以這樣:find 目錄 | grep -F -f 欲搜尋的檔案list
沒有留言:
張貼留言