J'écris un blog en Python et j'en suis au point où je dois décider du schéma d'URL à utiliser. Il est tentant de ne citer que les entrées début à la fin, comme:Décider d'un schéma d'URL de blog en ce qui concerne la performance de python
http://myblog.com/1
http://myblog.com/2
...
http://myblog.com/1568
Et du côté du serveur, il est juste que les entrées de blog dans une liste de python. Ma crainte est que cela deviendra lent à traverser à l'entrée demandée comme la liste se développe. Je ne sais pas quelle taille (comme dans la mémoire) les entrées seront donc je ne peux pas les stocker dans un tableau de niveau inférieur (s'il y a même en python) ou une table de taille fixe de toute sorte.
L'autre option Je pense est à préfixer les URL d'entrée avec un an:
http://myblog.com/2010/1
http://myblog.com/2010/2
http://myblog.com/2011/1
Je suppose que cela accélère les choses que je pouvais stocker les entrées dans une structure arborescente:
entries = {
'2010': [entry1, entry2, ...],
'2012': [entry1, entry2, ...]
}
Comment le feriez-vous? Je laisse la discussion ouverte car je m'intéresse à la façon dont les gens pensent ici.
Merci!
Est-ce que je comprends bien, vous avez l'intention de stocker les entrées littéralement * dans votre code *? – balpha
Bien sûr. Bien sûr, je vais les stocker quelque part de manière persistante afin qu'ils survivent aux redémarrages du serveur etc, mais sinon, ils ne sont que du texte, donc je ne vois aucune raison de ne pas les garder tous en RAM. – pthulin
Hmmm ... bien, de toute façon: la recherche de liste n'a rien à voir avec la traversée et est en fait assez rapide (voir http://stackoverflow.com/questions/2214651/efficient-python-array-with-100-million-zeros pour Exemple). Je suggère fortement de ne pas penser à l'optimisation en ce moment même - c'est certainement prématuré. Quoi qu'il arrive, la question de rechercher l'entrée de l'URL ne sera pas votre goulot d'étranglement. – balpha