Bonjour,
dans le cadre d'un projet Python3, j'ai une fonction f() qui consomme beaucoup de temps; pour une entrée x donnée, f(x) donne toujours le même résultat.
Je voudrais donc placer sur disque une table recensant les résultats de f(x) pour les x les plus souvent demandés. Cette table serait alors placée en mémoire. Ordres de grandeur : x et f(x) font une trentaine d'octets chacun, il me faudrait mettre en mémoire peut-être un miller de correspondances x <-> f(x) : rien d'impossible donc.
Evidemment je pourrais faire ça vite fait mal fait mais je voudrais savoir :
(1) si Python a un module/un type de données spécialement conçu pour ça (au-delà des types courants comme dict, bien évidemment)
(2) quelles sont les bonnes pratiques ? En particulier, avec le temps, si j'ai un compteur associé aux x les plus courants, certaines valeurs atteindront des "taux de demande" très élevés; comment de nouvelles valeurs, très demandées subitement, peuvent être intégrées au "cache" ?
(3) y a-t-il un article sur ce sujet que je pourrais consulter ?
(4) pour stocker la table et la récupérer, dois-utiliser une base de données ou le module pickle ?
Merci d'avance.
Message édité par suizokukan le 22-04-2013 à 23:27:59
---------------
rule #1 : trust the python