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

C Discussion :

vitesse d'exécution du code C vs temps d'accès aux données


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut vitesse d'exécution du code C vs temps d'accès aux données
    Bonjour,
    j'ai un programme en C dont je crois qu'il est freiné par le temps d'accès à quelques données qu'il a en mémoire, et auxquelles il doit comparer incessamment de nouvelles tentatives qu'il fait.
    Ces données peuvent être réduites à des groupes de trois bits (valeur de 1 à 8) dont il me faut trois pour décrire un "pas" (soit 9 bits).
    Si chaque tiers de pas est stocké dans un mot-mémoire, il me faut le temps de trois accès mémoire pour récupérer la description d'un "pas" complet avant d'y comparer la nouvelle tentative.
    J'hésite à concaténer les trois tiers de pas en 9 bits consécutifs pour un "pas", et je pourrai alors stocker 3 "pas", soit 27 bits, dans les 32 bits d'un mot de PC, mais il me faudra alors exécuter des décalages et des opérations sur bits pour récuperer chacun des tiers de chacun de mes "pas".
    Combien d'opérations simples de ce genre puis-je me permettre de faire, tout en gagnant du temps par rapport aux 9 accès mémoire dont j'ai besoin quand tout est stocké séparément ? (ma machine est un PC à pentium sous W2000)
    Merci,
    David

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Par défaut
    Citation Envoyé par dva2tlse Voir le message
    Bonjour,
    j'ai un programme en C dont je crois qu'il est freiné par le temps d'accès à quelques données qu'il a en mémoire
    Des outils permettent de connaitre en détails la repartition du temps d'execution d'un programme. Cela pourait permettre de vérifier que ce sont bien les accès en mémoire qui sont lent, avant de modifier du code qui n'est peut être pas la cause du problème de rapidité.
    Deux outils unix:
    ou
    callgrind (maintenant inclu avec valgrind)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valgrind --tool=callgrind --dump-instr=yes ./myprog
    Il fourni un fichier callgrind.out a visualiser avec par exemple kcachegrind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    kcachegrind callgrind.out
    Ca ne répond pas directement à votre problème mais ça peut etre utile.

    edit: Je n'avais pas vu que c'est sous W2000 mais il y a surment des outils equivalent.

  3. #3
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut je vais essayer au boulot
    totaliou merci; est-ce que les outils en question seront automatiquement disponibles sur les SUN-chaipakoi là où je bosse ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Par défaut
    Citation Envoyé par dva2tlse Voir le message
    est-ce que les outils en question seront automatiquement disponibles sur les SUN-chaipakoi où je bosse ?
    Aucune idée.
    En cherchant "Performance Profiling Tools" (nom pour ces outils)
    je suis tombé sur:
    http://docs.sun.com/app/docs/doc/802...9egm606?a=view

    Gprof et valgrind sont des outils très souvent inclus dans les conf. quand ils sont disponible sur le systeme, donc il y a des chances pour qu'ils y soient.

  5. #5
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut Ok merci; on verra ça l'an prochain...
    ...mais est-ce que t'as une idée du nombre d'instructions (ou même un vague ordre de grandeur, 1, 10, 100 ?) qui peuvent être faites pendant la durée d'un accès mémoire ?

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dva2tlse Voir le message
    ...mais est-ce que t'as une idée du nombre d'instructions (ou même un vague ordre de grandeur, 1, 10, 100 ?) qui peuvent être faites pendant la durée d'un accès mémoire ?
    Non, et avec les caches données et instructions des processeurs modernes, ça peut varier énormément...

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

Discussions similaires

  1. probleme de temps d'acces aux données
    Par bouhmid2007 dans le forum Développement
    Réponses: 2
    Dernier message: 01/02/2011, 17h44
  2. Temps d'acces aux fichiers liés...
    Par PAUL87 dans le forum Access
    Réponses: 2
    Dernier message: 08/12/2005, 15h08
  3. [SGBD]Optimiser le temps d'accès aux données (schéma BD)
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 08/10/2004, 18h33
  4. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21

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