Я написал следующую программу в качестве быстрого эксперимента дедупликации файлов, используя их MD5 хэшScala файл хеширования
import java.nio.file.{Files, Paths}
import java.security.MessageDigest
object Test {
def main(args: Array[String]) = {
val startTime = System.currentTimeMillis();
val byteArray = Files.readAllBytes(Paths.get("/Users/amir/pgns/bigPGN.pgn"))
val endTime = System.currentTimeMillis();
println("Read file into byte " +byteArray+ " in " + (endTime - startTime) +" ms");
val startTimeHash = System.currentTimeMillis();
val hash = MessageDigest.getInstance("MD5").digest(byteArray)
val endTimeHash = System.currentTimeMillis();
System.out.println("hashed file into " +hash+ " in " +(endTime - startTime)+ " ms");
}
}
и я заметил, что, когда мой файл PGN составляет около 1,5 Гб текстовых данных, это занимает около 2,5 секунд, чтобы прочитать файл, и 2,5 секунды для его хэша.
Мой вопрос: есть ли более быстрый способ сделать это, если у меня есть большое количество файлов?
Этот подход, похоже, сокращает общее время на 50% на моей коробке! Хорошо, спасибо. –