Tu as quelque chose à proposer sans avoir d'info sur la forme des lignes de logs?
Oui lis les autres commentaires...
Je n'ignore rien, l'extraction de l'IP du log peut être coûteuse, sa recherche en O(n) l'est au moins autant... sinon beaucoup plus s'il y a beaucoup d'adresses dans sa "grosse liste d'addresses IP". S'il a quelques milliers d'adresses IP dans sa liste, alors une recherche séquentielle est énormément plus coûteuse qu'une opération d'extraction.
Tu enfonce des portes ouvertes. Mais une autre possibilité pourrait être d'utiliser un tas pour ça. Si ces IPs recherchées sont rare dans les log (ce qui est potentiellement le cas), un bloom filter sera plus efficace encore. Mais ça reste très probablement de la microoptimisation parce que ce qui coute c'est l'extraction. Tu parle d'une recherche séquentielle sans résoudre le problème de l'extraction séquentielle.
C'est un peu comme si tu disais qu'il peut stocker les IP (v4) sous forme de 4 octets plutôt qu'en chaine de caractères qui peut faire 15 octets. Et montrer (benchmark à l'appuie) que pour 1000 ip : 1000*4 < 1000*15.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Le type "set" ?
Posté par barmic . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 4.
Oui lis les autres commentaires...
Tu enfonce des portes ouvertes. Mais une autre possibilité pourrait être d'utiliser un tas pour ça. Si ces IPs recherchées sont rare dans les log (ce qui est potentiellement le cas), un bloom filter sera plus efficace encore. Mais ça reste très probablement de la microoptimisation parce que ce qui coute c'est l'extraction. Tu parle d'une recherche séquentielle sans résoudre le problème de l'extraction séquentielle.
C'est un peu comme si tu disais qu'il peut stocker les IP (v4) sous forme de 4 octets plutôt qu'en chaine de caractères qui peut faire 15 octets. Et montrer (benchmark à l'appuie) que pour 1000 ip : 1000*4 < 1000*15.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)