Pour la publication de Spying the World from your Laptop, nous avons fait de nombreuses analyses sur 500 millions d'adresses IP présentes sur le site PirateBay, les fichiers qu'ils téléchargeaient et leurs sessions sur plusieurs mois. Au début, l'équipe utilisait Python, pour des calculs relativement simples et sur qques millions d'adresses seulement. Finalement, nous avons changé pour OCaml, nous avons pu faire des calculs beaucoup plus complexes, obtenir les résultats beaucoup plus vite (et donc réduire les itérations pour obtenir les résultats intéressants), et sur l'ensemble des 500 millions d'adresses.
Outre l'intérêt de détecter les bugs avant de lancer les calculs, c'est la concision d'OCaml (écrire en qques lignes un calcul complexe sur le graphe), la compacité mémoire (le graphe complet tenait dans les 16 GB de RAM de ma machine) et les performances qui nous ont fait préférer OCaml à Python pour ces analyses, et pas une "idéologie du typage" comme tu le sous-entends !
PS: j'utilise File.read_lines pour OCaml, dans ma bibliothèque perso, j'écris rarement cette fonction, sauf pour montrer un exemple…
[^] # Re: A mi chemin ?
Posté par Fabrice Le Fessant . En réponse à la dépêche OCaml 4.00.0 est sorti. Évalué à 6.
Pour la publication de Spying the World from your Laptop, nous avons fait de nombreuses analyses sur 500 millions d'adresses IP présentes sur le site PirateBay, les fichiers qu'ils téléchargeaient et leurs sessions sur plusieurs mois. Au début, l'équipe utilisait Python, pour des calculs relativement simples et sur qques millions d'adresses seulement. Finalement, nous avons changé pour OCaml, nous avons pu faire des calculs beaucoup plus complexes, obtenir les résultats beaucoup plus vite (et donc réduire les itérations pour obtenir les résultats intéressants), et sur l'ensemble des 500 millions d'adresses.
Outre l'intérêt de détecter les bugs avant de lancer les calculs, c'est la concision d'OCaml (écrire en qques lignes un calcul complexe sur le graphe), la compacité mémoire (le graphe complet tenait dans les 16 GB de RAM de ma machine) et les performances qui nous ont fait préférer OCaml à Python pour ces analyses, et pas une "idéologie du typage" comme tu le sous-entends !
PS: j'utilise
File.read_linespour OCaml, dans ma bibliothèque perso, j'écris rarement cette fonction, sauf pour montrer un exemple…