IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Optimisation temps de calcul et optimisation mémoire


Sujet :

Delphi

  1. #21
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 410
    Points : 5 801
    Points
    5 801
    Par défaut
    salut

    instinctivement j'aurais utilisé des listes chaînées
    l'utilisation de tableau alors que 80% ne sont pas utilisé est une aberration
    le parcours de cette matrice prendra forcement plus de temps que la liste chaînées celle-ci ne contenant que les éléments différent de zéro
    dans mon souvenir john Colibri avait écrit un livre sur de tel structure
    plus le nombre est grand plus le choix de la liste chaînées seras obligatoire

    gain de place mémoire et gain de temps de parcours le seul écueil c'est le non accès direct par indice
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  2. #22
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    instinctivement j'aurais utilisé des listes chaînées
    l'utilisation de tableau alors que 80% ne sont pas utilisé est une aberration
    le parcours de cette matrice prendra forcement plus de temps que la liste chaînées celle-ci ne contenant que les éléments différent de zéro
    pour un accès séquentiel oui, puisque tu sautes les trous, mais si tu veux connaître la valeur d'une position (x,y) le tableau sera plus rapide

    et j'imagine que même si elle est vide à 80%, les "trous" peuvent bouger, et le taux d'occupation peut être fluctuant...enfin je suppose.

    Citation Envoyé par anapurna Voir le message
    dans mon souvenir john Colibri avait écrit un livre sur de tel structure
    plus le nombre est grand plus le choix de la liste chaînées seras obligatoire

    gain de place mémoire et gain de temps de parcours le seul écueil c'est le non accès direct par indice
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Je suis désolé d'avoir lancé la discussion et de l'avoir laissé tomber pendant une quinzaine de jours mais j'ai dû m'atteler à d'autres tâches plus prioritaires au sein de l'entreprise.

    Paul TOTH

    avec X5 il doit être possible d'utiliser un "TArray<Double>" ou encore un "array of Double" (c'est la même chose) dont on fixe la taille par SetLength(a, size);

    après tout dépend de la taille de la matrice évidemment.

    il est possible d'allouer une matrice sur disque et d'utiliser un mappage mémoire pour manipuler toute la matrice ... bon ça fait bosser le disque, mais ça n'explose pas la mémoire.
    Présentation des deux problèmes :
    En fait, ce qui fait exploser la mémoire ce n'est pas la taille de la matrice. C'est l'ensemble des informations que nous obtenons après la résolution des systèmes.
    En effet, pour vérifier une structure, on lance X "cas de chargement". En gros, on vérifie la résistance de la structure en jouant sur la force du vent, le poids de la neige...
    Chacun de ces cas de chargement nécessite la résolution d'un système linéaire : Ax=b avec A la fameuse matrice creuse symétrique.

    Cette résolution prend en soi peu de temps : 2 secondes par exemple mais le fait de le faire 300 fois fait que ça prend du temps.
    Une fois qu'on a résolu le système, on procède à une série de vérifications. Les résultats de ces vérifications sont stockées et c'est cette mémorisation qui va faire exploser la mémoire.

    Solution envisagée :
    Une des pistes que j'envisage est d'enregistrer au fur et à mesure des données dans des fichiers et venir les ouvrir en fonction des demandes de l'utilisateur.

Discussions similaires

  1. Optimisation Temps de calcul somme.si.ens
    Par damsaga dans le forum Excel
    Réponses: 10
    Dernier message: 26/08/2014, 17h39
  2. Réponses: 6
    Dernier message: 26/05/2010, 10h15
  3. optimisation temps de calcul: appel à DLL
    Par oliv23 dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 11/03/2008, 14h18
  4. optimisation du temps de calcul
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/08/2007, 15h31
  5. optimisation du temps de calcul
    Par mhamedbj dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2007, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo