Bonjour,

J'ai réussi a calculer le temps d'exécution d'un index en Java avec la fonction System.currentTimeMillis. Cependant j'aimerais effectuer le travail en boucle et faire une moyenne pour obtenir une meilleure estimation du temps. Voici une partie du code fonctionnel.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
 
    public class Indexer {
 
    // source location
    private final String sourceFilePath = "C:/JAVA/LuceneDemo/gutenberg/totaltxt";
 
    // index file location
    private final String indexFilePath = "C:/JAVA/LuceneDemo/gutenberg/index";
 
    private IndexWriter writer = null; // an index writer creates and maintains
    // an index
    private File indexDirectory = null;
 
    // constructor
    private Indexer() throws FileNotFoundException, CorruptIndexException,
    IOException {
    try {
    long start = System.currentTimeMillis();
    createIndexWriter(); // it writes data to the index
    checkFileValidity(); // finds out the files which needs to be
    // indexed
    closeIndexWriter(); // close the index writer
    long end = System.currentTimeMillis();
    System.out.println("Total des documents indexés: "
    + totalDocumentsIndexed());
    System.out.println("Ça a pris "+ (end - start) / 1000.0+" secondes.");
    } catch (Exception e) {
    System.out.println("l'indexation ne peut pas continuer");
    }
    }
 
   [...]
Je sais que ma boucle ressemblera à ceci, mais je ne sais pas comment la placer dans mon code sans erreur. J'obtiens une boucle sans fin et je ne peut pas indexer les documents. Merci de votre aide, je me considère encore débutant et maladroit avec Java.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
long start = System.currenTimeMillis();
for (int k = 0; k < 1000; ++k)
 mafonction();
long end = System.currenTimeMillis();
System.out.println("Ça a pris "+ (start-end)/1000.0+" secondes");
System.out.println("Une moyenne de  "+ (start-end)/(1000*1000.0)+" secondes.");