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.
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
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"); } } [...]
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.");
Partager