Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1917 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  utiliser un "cache" pour accélérer l'accès à des données [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utiliser un "cache" pour accélérer l'accès à des données [résolu]

n°2186067
suizokukan
Posté le 16-04-2013 à 13:41:42  profilanswer
 

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
mood
Publicité
Posté le 16-04-2013 à 13:41:42  profilanswer
 

n°2186945
masklinn
í dag viðrar vel til loftárása
Posté le 22-04-2013 à 13:18:19  profilanswer
 

functools.lru_cache ? (Python 3, backporté dans functools32 si tu es en Python 2, repoze.lru en fournit également un.

 

Ils sont tous en mémoire, pas de serialization disque du cache.


Message édité par masklinn le 22-04-2013 à 13:22:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2187088
suizokukan
Posté le 22-04-2013 à 23:27:43  profilanswer
 

Un grand merci à Masklinn : outre la fonction Python, j'ai découvert grâce à la documentation le mot clef LRU (http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used) dont j'avais besoin.
 
Formidable !


---------------
rule #1 : trust the python

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  utiliser un "cache" pour accélérer l'accès à des données [résolu]

 

Sujets relatifs
Ordonner des données dans un fichier txtprobleme mise a jour de ma base de données
Excel vb6 et accesPhp pdf base de données
VBA et excel Base de donnéesCorriger erreur php: modification de base données
Comment copier coller des données d'un classeur à un autre ?Afficher des données sur ma page d'accueil JSP
flux de données en JAVA 
Plus de sujets relatifs à : utiliser un "cache" pour accélérer l'accès à des données [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR