小编Ita*_*Hay的帖子

对许多文件循环使用 MD5 计算器时出现性能问题

我正在创建一个程序,通过将文件的 MD5 与已检查的 MD5 的数据库进行比较来检查文件。

它循环访问数千个文件,我发现它使用了大量内存。

如何使我的代码尽可能高效?

    for (File f : directory.listFiles()) {


        String MD5;
        //Check if the Imagefile instance is an image. If so, check if it's already in the pMap.
        if (Utils.isImage(f)) {
            MD5 = Utils.toMD5(f);
            if (!SyncFolderMapImpl.MD5Map.containsKey(MD5)) {

                System.out.println("Adding " + f.getName() + " to DB");
                add(new PhotoDTO(f.getPath(), MD5, albumName));
            }
        }
Run Code Online (Sandbox Code Playgroud)

这是MD5:

  public static String toMD5(File file) throws IOException, NoSuchAlgorithmException {
    MessageDigest md = MessageDigest.getInstance("MD5");
    FileInputStream fis = new FileInputStream(file.getPath());


    byte[] dataBytes = new byte[8192];

    int …
Run Code Online (Sandbox Code Playgroud)

java performance md5

3
推荐指数
1
解决办法
1216
查看次数

标签 统计

java ×1

md5 ×1

performance ×1