Bonjour,
Voila étant en dernière année de master informatique, on nous demande de coder des algorythmes de découverte de réseaux.
On se sert donc d'un fichier de la forme :
0 1
0 2
1 2
...
Où chaque lignes représente un lien et chaque numéro représente un noeud du réseau.
Les algos marchent bien pas de souci pour ça le seul souci c'est la rapidité : pour un réseau de 117 millions de liens (donc un fichier avec 117 millions de lignes), l'algo ci-dessous met 5 minutes et 20 secondes rien qu'à rentrer le fichier en mémoire RAM, la où mon prof met lui 26 secondes.
J'ai un i5 avec 6 GO de RAM, un SSD et les 4 coeurs montent tous à 50% de charge quand l'algo ci-dessous tourne.La lecture disque semblerait se faire à 2 Mio/s.
Voila ma question est donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
Remplacer fopen() par open() va-t il améliorer la rapidité ?
Ou sinon si vous avez d'autres idées pour améliorer la rapidité de mise en mémoire principale...
D'autres fonctions que open?()
Création de threads ou processus pour essayer d'aller plus vite?
gcc -09 change t-il quelque chose à la done?
...
Merci beaucoup

 

 
		
		 
         
 

 
			
			


 
   
 


 fopen vs open question rapidité
 fopen vs open question rapidité
				 Répondre avec citation
  Répondre avec citation
Partager