gpt4 book ai didi

java - 高效计算MD5校验和

转载 作者:行者123 更新时间:2023-12-02 08:26:22 26 4
gpt4 key购买 nike

我正在使用以下代码来获取文件的校验和。计算时使用 50% 的 CPU。

MessageDigest md = MessageDigest.getInstance("MD5");
InputStream is = new FileInputStream("C:\\Temp\\Small\\Movie.mp4"); // Size 700 MB

byte [] buffer = new byte [blockSize];
int numRead;
do
{
numRead = is.read(buffer);
if (numRead > 0)
{
md.update(buffer, 0, numRead);
}
} while (numRead != -1);

byte[] digest = md.digest();

可以采取哪些措施来减少代码使用除 Thread.sleep(ms) 之外的最大 CPU

问候,金斯利·鲁本 J

最佳答案

您可以使用Thread.setPriority(int newPriority)方法来降低线程的优先级。这将导致其他更高优先级的线程更频繁地执行。但是,您的 MD5 计算速度不会像您不考虑优先级那样快 - 为什么您不希望此计算尽快完成?

编辑:这是一个 "Fast MD5" implementation ,与 Java 的默认 java.security.MessageDigest 实现相比,它拥有显着的性能提升(平均快 26%)。详细信息请参见作者页面,包括code examplesbenchmarks 。该代码可在 GNU LGPL 2.1 license 下找到。 .

关于java - 高效计算MD5校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com