Stockage ou calcule ?

Discutez d'informatique ici !
fesssstif
Membre Naturel
Messages: 19
Enregistré le: 28 Oct 2011, 22:22

Stockage ou calcule ?

par fesssstif » 18 Nov 2011, 10:40

Bonjour,
Je me pose (très) souvent cette question quand je programme, mais je n'ai pas trouvé de réponses.

Vaut-il mieux calculer une fois une données puis la stocker ou la recalculer à chaque fois ?

si le calcule est complexe et qu'on demande souvent la donnée, il vaut mieux la stocker,
si le calcul consiste en une somme très simple entre deux champs pour un millions d'objets, il vaut mieux calculer sur demande.

A partir de quel niveau de complexité de calcul, de fréquence de demande et d’espace de stockage nécessaire vaut-il mieux la recalculer ?



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 18 Nov 2011, 11:16

salut,

D'abord tu definis cb de temps tu as le droit de perdre pour un scenario.
Ensuite, si c'est pas bon, tu cherches ou est-ce que tu perds du temps.
ET si tu as trouve un point (yen aura surement un) ou tu depasses de trop, alors tu optimises ce point.

Dans le doute, tu peux refaire le calcul plein de fois, c'est pas grave.
la vie est une fête :)

fesssstif
Membre Naturel
Messages: 19
Enregistré le: 28 Oct 2011, 22:22

par fesssstif » 18 Nov 2011, 13:55

En gros, du moment que le programme fonctionne dans un temps raisonnable et sans overflow, on s'en fout ^^

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 18 Nov 2011, 14:08

oui. De maniere generale, il faut privilegier la simplicite du code a l'optimisation.
la vie est une fête :)

lecarpla
Membre Relatif
Messages: 180
Enregistré le: 27 Nov 2011, 15:27

par lecarpla » 27 Nov 2011, 18:34

Effectivement il est dur de "jauger" à partir de quel moment il faut mieux stocker que recalculer...

Assez souvent les informaticiens testent carrément les deux solutions et décident en conséquence surtout dans le domaine du web ou l'optimisation est très importante!

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 27 Nov 2011, 19:05

surtout dans le domaine du web ou l'optimisation est très importante!


Je suis curieux d'avoir des exemples.
Parce qu'à part optimiser une requête sql, je vois pas ce qu'il y a à optimiser côté serveur!
la vie est une fête :)

lecarpla
Membre Relatif
Messages: 180
Enregistré le: 27 Nov 2011, 15:27

par lecarpla » 27 Nov 2011, 19:15

Pour ce qui est de la question stockage ou recalcul, elle intervient effectivement essentiellement sur des requêtes SQL. Comme il est parfois difficile de savoir lequel est le plus rapide, on procède à des tests.

Sinon en ce qui concerne l’optimisation côté serveur, pas mal de langages orientés web ne s'auto-optimisent pas ou très peu comme le php.

Voilà quelques exemples d'optimisations pour php:

http://prendreuncafe.com/blog/post/2006/11/22/12-astuces-optimisation-performances-php

Si tu veux t'amuser un peu, fais une petite page php qui utilise les bout de code cités dans le lien que je t'ai donné avec les versions conseillées et une avec les versions déconseillées sur un nombre de données assez conséquentes et regardes la différence de temps, tu sera vraiment impressionné!!

Je ne suis pas trop orienté web mais j'ai une copine qui travaillait dans une agence web, elle m'avait montré des exemples de deux codes php qui faisaient exactement la même chose mais codé différemment (php et requêtes SQL) et le gain était plus qu'impressionnant!!

Bon après tout ça ça reste anecdotique pour un petit site bien sûr... Mais bon, autant prendre de bonnes habitudes! :)

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 27 Nov 2011, 19:29

mm c'est intéressant, cela dit, je pense pas que ca soit ce genre de choses qui font accélérer le process d'un site.

Je pense par exemple à l'hydratation qui peut rendre les choses plus violentes d'un coup.

De ce que j'ai vu (pas gd chose certes), il n'y a rien que requiert tant de vitesse de traitement qu'on est obligé d'ajouter du static... En revanche, quand c'est trop important on peut déporter avec du C/C++ en tant que routine.
Après, ma question c'était de savoir s'il existait des cas ou vraiment on ressent qqch en optimisant coté langage serveur (par exemple des bons patterns style le io access de node, ou bien le z memory de php), mais de manière logicielle
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite