[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gulliver] Re: Programme pour analyser un système de fichier ?


From "David MENTRE" <david dot mentre at gmail dot com>
Subject Re: [gulliver] Re: Programme pour analyser un système de fichier ?
Date Wed, 22 Mar 2006 09:25:23 +0100

Salut Thomas,

2006/3/22, Thomas de Grenier de Latour <degrenier at easyconnect dot fr>:
> Merci, j'étais moi aussi curieux de voir ce genre de stats sur quelques
> répertoires depuis que tu en as parlé, donc voilà, maintenant je peux.

Cool. Je ne pensais vraiment pas que ça pouvait servir à quelqu'un d'autre. :)

> Je te joins un petit patch qui ajoute une info sur la taille médiane
> des fichiers (enfin, plus exactement qui indique l'intervale dans lequel
> elle devrait se trouver). Déso si jamais c'est pas très stylé, ça
> faisait un certain temps que je n'avais pas retouché de l'ocaml.

Ton style OCaml est très bien, en tout cas tout aussi bien que le
mien. Je trouve que ton patch clarifie mon code. ;-)

Si j'ai bien compris ton patch, pour calculer cette taille médiane, tu
ajoutes le nombre de fichier dans chaque "bin" jusqu'à ce que ta somme
partielle soit au moins la moitié du total. À ce moment là, tu
retournes le numéro de ce "bin".

Si j'avais écrit ce code, je n'aurais probablement pas distingué le
cas [(b,c)] dans ta fonction "get_median_size_range". Pour simplifier
les cas limites, j'aurai probablement donné le dernier numéro de bin
dans l'appel récursif et retourné ce numéro dans le cas liste vide. Un
truc du style :
+let rec get_median_size_range total count last_bin sorted_distrib =
+  match sorted_distrib with
+      [] -> last_bin
+    | (b,c) :: l ->
+      if ((2 * (count + c)) >= total) then b
+      else get_median_size_range total (count + c) b l

Avec un appel initial :
+  let bin = get_median_size_range stats.num_files 0 0 sorted_distrib in

J'ai pas testé, donc ça peut ne pas marcher. :)

> Le patch corrige aussi deux ou trois micro-bugs : une division par zéro
> sur les répertoires vides, et une taille mini affichée de "max_int"
> dans ce même cas de beta-testeur pervers. Et puis aussi l'affichage de
> la taille nulle qui apparaissait comme "1 B".

Oui, j'étais tombé dessus mais pour moi c'était hors limite
d'utilisation. Mais c'est d'autant mieux si c'est corrigé. :-)

Je vais pouvoir sortir la v2. ;-)

Amicalement et merci,
d.

PS: La Gentoo me tente de plus en plus. S'il n'y avait un ré-install
complète de ma machine (modem ADSL USB, configs, ...) je crois que je
me laisserai tenter. :)