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

Algorithmes et structures de données Discussion :

Optimiser la recopie de données entre deux structures


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éprouvé
    Avatar de Cian
    Inscrit en
    Août 2002
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 181
    Points : 983
    Points
    983
    Par défaut Optimiser la recopie de données entre deux structures
    Bonjour,
    j'ai deux grosses structures de données.
    La structure A est envoyée à mon système.
    Mon système récupère cette structure A, copie son contenu dans une structure B (plus grosse) et complétera cette structure B avec des données intermédiaires de calcul.
    Par la suite, mon système est amené à recopier des éléments de la structure B dans la structure A pour publication vers les clients.

    J'aurais souhaité savoir quelle est la manière la plus optimale en terme de perfo pour copier A dans B et B dans A.

    Merci

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    il me semble que le plus simple est de faire des copies de blocs de mémoire. recopie de type memcopy de C/C++.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre éprouvé
    Avatar de Cian
    Inscrit en
    Août 2002
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 181
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonjour,

    il me semble que le plus simple est de faire des copies de blocs de mémoire. recopie de type memcopy de C/C++.
    Arf... oui
    Mais pour compliquer la chose... je suis en JAVA

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    il doit bien y avoir la même chose...
    Une petite question dans le forum Java répondra à ton problème (ou tu attends que pseudocode lise ce poste )
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre éprouvé
    Avatar de Cian
    Inscrit en
    Août 2002
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 181
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonjour,

    il doit bien y avoir la même chose...
    Une petite question dans le forum Java répondra à ton problème (ou tu attends que pseudocode lise ce poste )
    j'ai suivi ton conseil et j'ai posé ma question concernant un équivalent du memcpy en JAVA dans le forum JAVA.
    Cependant, en terme d'algorithmie pure, je me demandais également si il n'y avait pas un moyen d'optimiser la copie. Exemple, détecter les éléments modifiés pour ne modifier que ce qui est nécessaire : et dans ce cas, je ne me vois pas faire un if A /= B then copy bien sûr... sinon on va assoir les perfs encore plus

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Cian Voir le message
    Exemple, détecter les éléments modifiés pour ne modifier que ce qui est nécessaire : et dans ce cas, je ne me vois pas faire un if A /= B then copy bien sûr...
    Normalement, c'est à toi de définir ce qui est nécessaire de copier complètement ou de garder juste une référence. Par exemple les classes non mutables peuvent être copiées simplement par référence au lieu d'être copiées complètement.

    Mais il n'y a pas de signature en Java qui indique qu'une classe est non mutable, c'est donc à toi d'implémenter la méthode clone()
    Je ne répondrai à aucune question technique en privé

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Une petite question dans le forum Java répondra à ton problème (ou tu attends que pseudocode lise ce poste )


    Citation Envoyé par Cian
    Cependant, en terme d'algorithmie pure, je me demandais également si il n'y avait pas un moyen d'optimiser la copie. Exemple, détecter les éléments modifiés pour ne modifier que ce qui est nécessaire
    Hum.. implémenter son propre COW (copy-on-write) en Java permettrait peut-etre de gagner un peu de performance mais au détriment de la complexité du code (sans parler de problemes de multi-threading).

    Les mécanismes de serialisation/déserialisation de Java permettent de dupliquer (plus ou moins) facilement des instances composites. En terme de performance ce n'est pas très rapide, mais on peut utiliser des tactiques pour ameliorer les choses (nursery, background thread + pattern futur)

    Sinon, il faudrait remonter a la conception de ton appli pour eviter d'avoir beson d'un clone "complet" de ta structure
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre éprouvé
    Avatar de Cian
    Inscrit en
    Août 2002
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 181
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par pseudocode Voir le message

    Les mécanismes de serialisation/déserialisation de Java permettent de dupliquer (plus ou moins) facilement des instances composites. En terme de performance ce n'est pas très rapide, mais on peut utiliser des tactiques pour ameliorer les choses (nursery, background thread + pattern futur)
    Merci. Je ne suis pas une spécialiste mais je vais me renseigner sur ces sujets.

    Citation Envoyé par pseudocode Voir le message
    Sinon, il faudrait remonter a la conception de ton appli pour eviter d'avoir beson d'un clone "complet" de ta structure
    Hum... oui je suis bien d'accord avec toi. C'est un choix que je n'ai toujours pas compris... Malheureusement, c'est un héritage de mes prédécesseurs...Aujourd'hui je me vois mal bouger ce design car çà remettrait en cause bcp de choses et de $. Dans un premier temps, on va chercher à optimiser le code. Si on n'obtient pas de résultat significatif alors il faudra sans doute se résoudre à des solutions de re-design effectivement.

Discussions similaires

  1. [AC-2010] Transfert de données entre deux tables avec recopie
    Par Mehdouche dans le forum VBA Access
    Réponses: 7
    Dernier message: 15/07/2013, 05h38
  2. transfert de données entre deux tables
    Par student007 dans le forum Access
    Réponses: 4
    Dernier message: 23/12/2005, 13h04
  3. Réponses: 5
    Dernier message: 30/11/2005, 16h41
  4. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  5. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01

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