Ich verwende folgenden Code, um die Checksumme einer Datei zu erhalten. Es verwendet 50% der CPU während der Berechnungen.MD5 Checksum effizient berechnen
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();
Was kann den Code verwenden, maximalen CPU andere als Thread.sleep (ms)
Grüßen, Kingsley Reuben J
50% auf einem Single- oder Dual-Core-CPU starten könnten? :) Ich vermute, seine auf einem Dual-Core. – Quamis
@Quamis Die Antwort ist also, mehr Kerne zu bekommen. –
Ich habe Ihre Frage kommentiert, die Antworten finden Sie auf der Seite. Ich versuche herauszufinden, dass du falsche Daten gepostet hast. Ihr Algorithmus scheint die md5sum einer Datei zu berechnen. Dies ist eine sehr intensive CPU + Festplattenaufgabe. Also ich nehme an, dass Ihre CPU 100% sein sollte. Sie sagten 50%, was zu der Annahme führt, dass Sie ein Dual-Core-System haben, und die tatsächliche CPU-Nutzung in diesem Fall wäre 100%. – Quamis