J'ai un code comme ceci:réduire le temps d'exécution en boucle
RandomAccessFile raf = new RandomAccessFile(new File("C:\\Users\\AhmadMaleki\\IdeaProjects\\Hello world\\src\\kish\\file1"), "r");
for (int i = 1 ; i < 1025 ; i++)
{
for (int j = 0; j < raf.length() - 4 ; j++)
{
raf.seek(j);
byte[] b = new byte[5];
raf.read(b);
if (new String (b).equals(wordcount[i]))
{
z[i]++;
}
}
}
Dans le présent code raf.length() = 26841039 et le temps d'exécution est 4100 minutes. Y a-t-il des solutions pour réduire le temps d'exécution? (Par exemple multi-thread, parallèle, ....)
Bienvenue dans Stack Overflow. Ce site est en fait censé être pour du code qui ne fonctionne pas. Vous voulez [Code Review] (https://codereview.stackexchange.com/). – Michael
Il est très probable que cela peut être optimisé. A titre d'exemple, je doute vraiment que vous ayez besoin de lire le fichier 1024 fois. Au lieu de cela, vous pourriez vouloir le lire d'un seul coup, construire une structure pour contenir les données et agir sur cela. – Thomas
Continuant je doute que vous ayez besoin de RandomAccessFile pour ceci. Lire continuellement comme un flux est plus rapide. –