Calcul de la distance entre deux fichiers
Posté le 6. June 2010 dans Programmation • Tags: qt, performance
Temps de lecture: 7 min
Présentation
Suite à un billet sur LinuxFR, où je demandais comment calculer la distance (ou le pourcentage de similitude entre deux logiciels), j'ai obtenu la formule suivante :
distance = 1 - ( C(A) + C(B) - C(AB) ) / Max(C(A), C(B))
où C(X) est la taille du fichier X compressé1.
Après avoir testé les formats gzip
, bzip2
et lzma
, j'ai conclu que
le format de compression le plus performant pour le calcul, est le
format lzma
, car le dictionnaire avec la mise en commun était le
plus gros, et donc le calcul de distance est plus efficace.
Le programme
J'ai donc décidé d'écrire un programme parcourant un dossier (avec plusieurs milliers de fichiers) et de calculer pour toutes les combinaisons des fichiers la distance entre chaque fichier. Ce programme consommant énormément de mémoire, il se peut que pour un grand nombre de fichier, le programme se plante avec une erreur d'allocation de mémoire. ...
Lire la suite ...