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

Langage Delphi Discussion :

Accéleration des calculs


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut Accéleration des calculs
    Salut à tous,
    Je veux générer tous les chemins et cycles possibles d'un graphe, or ce problème est NP-Complet, il consomme donc beaucoup de temps et de ressources. J'ai implémenté une solution en utilisant les tableaux dynamiques, les threads et les fichiers binaires, elle marche mais pour un certain nombre élevé de nœuds (sommets) le programme plante totalement.
    Comment faire pour optimiser les calculs ???
    Est ce que TMemoryStream et TFileStream peuvent aider à améliorer les performances ???

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 671
    Points : 25 481
    Points
    25 481
    Par défaut
    Si D7, pense que la réallocation par SetLength de Tableau dynamique c'est une opération très couteuse !
    Si FastMM ou D2007+, c'est entre 100 et 1000 fois plus rapide !

    Si cela consomme beaucoup de mémoire (genre en Go) et que cela utilise le SWAP, faire directement certaine manipulation sur un fichier sera plus rapide, j'avais observé cela dans le sujet Test possibilités possible longue boucle
    Je dis ça pour une mahcine avec 512Mo de RAM, quand je suis passé à 4Go, la machine était globalement 2 à 5 fois plus rapide (mon ressenti), sur des algos gourmand en RAM, c'était un facteur x100 car tout pouvait rester en RAM

  3. #3
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Si D7, pense que la réallocation par SetLength de Tableau dynamique c'est une opération très couteuse !
    Si FastMM ou D2007+, c'est entre 100 et 1000 fois plus rapide !

    Si cela consomme beaucoup de mémoire (genre en Go) et que cela utilise le SWAP, faire directement certaine manipulation sur un fichier sera plus rapide, j'avais observé cela dans le sujet Test possibilités possible longue boucle
    Je dis ça pour une mahcine avec 512Mo de RAM, quand je suis passé à 4Go, la machine était globalement 2 à 5 fois plus rapide (mon ressenti), sur des algos gourmand en RAM, c'était un facteur x100 car tout pouvait rester en RAM
    Merci.
    C'est quoi FastMM ??? est ce qu'il peut aider dans ce problème ???

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 815
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 815
    Points : 13 532
    Points
    13 532
    Par défaut
    J'ai relu plusieurs fois la question et j'ai toujours rien compris

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 671
    Points : 25 481
    Points
    25 481
    Par défaut
    FastMM 1er lien de

    Son problème si j'ai bien compris, c'est qu'il calcule tous les chemins possibles dans un Graphe, un algo de PathFinding, et qu'ils stockent ces chemins quelque part !
    Déjà qu'un simple PathFinding c'est long, alors chercher tous les chemins, c'est de la combinatoire, le nombre de combinaison est exponentielle !

  6. #6
    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 : 55
    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 457
    Points
    28 457
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    J'ai relu plusieurs fois la question et j'ai toujours rien compris
    +1

    je commencerais par utiliser SamplingProfiler pour déterminer quelles portions du code sont consommatrices de temps.

  7. #7
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Merci pour les réponses, je vais essayer ces outils.

  8. #8
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 507
    Points : 2 779
    Points
    2 779
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Ci joint zip avec des exemples. Ce zip est sous Licence Publique Générale GNU
    Fichiers attachés Fichiers attachés

  9. #9
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par ALWEBER Voir le message
    Bonjour,

    Ci joint zip avec des exemples. Ce zip est sous Licence Publique Générale GNU
    Merci pour cette réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [formulaire] faire des calculs
    Par gyzmo5 dans le forum IHM
    Réponses: 7
    Dernier message: 08/02/2006, 13h43
  2. utiliser données texte pour faire des calculs
    Par sarah67 dans le forum Access
    Réponses: 20
    Dernier message: 06/02/2006, 14h09
  3. [Système] Problème pour effectuer des calculs
    Par tissard dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2005, 14h07
  4. Faire des calculs automatiques en JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/02/2005, 10h31
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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