• # meuh

    Posté par . En réponse au message Recherche optimisée dans un fichier. Évalué à 2.

    tu peux éventuellement le faire par un simple script en te servant du fait que les tables de hachage utilisent.. des hachages, si tu peux disposer d'assez de mémoire :

    avec un fichier de 80M ça bouffe 60M de mémoire :

    [gc@meuh /tmp] perl -ne 'sub mem { open F, "/proc/self/status"; @foo = <F>; "@foo" =~ /VmRSS:(.*)/ and print "mem usage: 1ドル\n"; }; BEGIN { mem() } chomp; $a{$_}++; END { mem(); print "number of files in index: ".int(keys %a)."\n"; while (<STDIN>) { chomp; print "was $_ present in file? -> "; print exists $a{$_}; print "\n"; } }' /tmp/log2

    mem usage: 1444 kB
    mem usage: 60444 kB
    number of files in index: 495353
    foo
    was foo present in file? ->
    /usr/bin
    was /usr/bin present in file? -> 1

    l'indexation prend environ 2,5 seconde, puis les réponses sont instantanées.