J'utilise le code suivant pour obtenir la somme de contrôle d'un fichier. Il utilise 50% du CPU pendant les calculs.Calculer MD5 Checksum Efficacement
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();
Que peut-on faire pour réduire le code de l'utilisation maximale du processeur autre que Thread.sleep (ms)
Cordialement, Kingsley Reuben J
50% sur un seul ou cpu dual core? :) Je devine que son sur un dual core. – Quamis
@Quamis Donc, la réponse est d'obtenir plus de noyaux. –
Je commente sur votre question, la section des réponses est en bas de la page. J'essaie de dire que vous avez peut-être publié des données erronées. Votre algorithme semble calculer le md5sum d'un fichier. C'est une tâche CPU + disque très intensive. Donc, je suppose que votre processeur devrait être 100%. Vous avez dit 50%, ce qui me conduit à penser que vous avez un système dual core, et l'utilisation réelle de cpu (core) dans ce cas serait 100% – Quamis