Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement de logiciels
  4. C
  5. Apprendre l'optimisation en C?

Apprendre l'optimisation en C?

Planifié Épinglé Verrouillé Déplacé C
10 Messages 5 Publieurs 3.0k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • AlemortA Hors-ligne
    AlemortA Hors-ligne
    Alemort
    a écrit sur dernière édition par
    #1

    Comme-vous le savez lorsque l'on fait de la programmation, un point important auquel n'ont accordé aucune attention lorsque l'on commence, c'est bien l'optimisation.

    Donc pour aller vers l'optimisation en language C, vers où se tourner?

    Pour améliorer ses algorithmes de calcul:

    -vers l'assembleur pour optimiser les différents calculs

    -Utiliser des types de variables moins gourmandes

    Optimisation générale:

    -éviter la copie de variable ou de tableaux dans des fonctions.

    -Recoder les fonctions que l'on utilise pour mieux les comprendre et en créer de moins gourmandes pour nôtres utilisations.

    Mais bon, les cours sur internet né détail pas trop ces points généralement.

    Quelques questions:

    Pour recoder une fonction par exemple prin, on se dirige vers quel type de fonction? Les fonctions que l'on utilisera il serait bien de les recoder mais il arrivera un point ou on pourra plus continuer, non?

    Y a-t-il de bons sites qui donnent des conseils sur ce genre de sujet?

    Y a-t-il d'autres voix pour optimiser son programme?

    Est-il préférable d'optimiser son programme en codant les fonctions, ou bien coder un programme qui marche et ensuite l'optimiser?

    1 réponse Dernière réponse
    0
    • AlexMogA Hors-ligne
      AlexMogA Hors-ligne
      AlexMog
      Modérateur spécialisé
      a écrit sur dernière édition par
      #2

      Je compte faire un tutoriel là dessus dès que j'aurai le temps (par exemple, savoir quand il faut passer une structure par copie, etc..), donc je te laisse attendre un peu, le temps que je monte le cours 🙂 .

      Multiplayer GameDev @ Unexpected

      Mon CV

      1 réponse Dernière réponse
      0
      • AzadA Hors-ligne
        AzadA Hors-ligne
        Azad
        a écrit sur dernière édition par
        #3

        "-vers l'assembleur pour optimiser les différents calculs" : Tu peux expliquer ton idée ? 🙂

        Sinon, oui, bonne idée AlexMog aussi.

        Administrateur du forum.

        Contactez-moi par message privé ou par mail.

        1 réponse Dernière réponse
        0
        • D Hors-ligne
          D Hors-ligne
          davydavek
          a écrit sur dernière édition par
          #4

          "Utiliser des types de variables moins gourmandes"

          -A moins ce que tu travaille sur un système qui a une mémoire très limitée, c'est rarement utile.(je parle de trucs genre char a la place d'int)

          "Pour recoder une fonction par exemple printf, on se dirige vers quel type de fonction? Les fonctions que l'on utilisera il serait bien de les recoder mais il arrivera un point ou on pourra plus continuer, non?"

          *-*Les fonctions système, qui sont gérées par l'OS. Ceux qui ont creer l'OS ont bien coder ces fonctions, pourquoi pas toi ? 😛

          "vers l'assembleur pour optimiser les différents calculs"

          -Ecrire de l'assembleur qui est plus rapide que du C requiert une excellente connaissance

          C# dev

          github.com/DavyWk

          1 réponse Dernière réponse
          0
          • AlemortA Hors-ligne
            AlemortA Hors-ligne
            Alemort
            a écrit sur dernière édition par
            #5

            @Azad: Lorsque je parle d'Assembleur, ce n'est pas pour remplacer le code en C par de l'asm mais pour comparer plusieurs calculs qui donnent le même résultat final pour repérer celui qui à besoin de moins de puissance/étapes.

            @Davydavek: Lorsque l'on utilise des tableaux de grande taille, c'est toujours intéressent, donc prenons un char qui vaut octet et un int qui en prend 4, et ce tableau avoisine les 12500 surface.

            Un tableau de int prendra: 50.000 octet et un char 12.500. Optimiser des petites choses sur un programme de plusieurs millier de ligne peut être bénéfique je trouve 😉 .

            Et sinon lorsque-tu parles de recoder les fonctions systèmes ou des fonction de son OS, il faut s'y prendre comment? oO

            @Alex: J'attend ton tutoriel avec impatience 🙂

            1 réponse Dernière réponse
            1
            • D Hors-ligne
              D Hors-ligne
              Droby
              a écrit sur dernière édition par
              #6

              @Alex: J'attend ton tutoriel avec impatience 🙂

              De même héhé 🙂

              Bonne affaire ici

              1 réponse Dernière réponse
              0
              • D Hors-ligne
                D Hors-ligne
                davydavek
                a écrit sur dernière édition par
                #7

                Et sinon lorsque-tu parles de recoder les fonctions systèmes ou des fonction de son OS, il faut s'y prendre comment? oO

                Sous Windows tu peut recoder les fonctions en usermode, pour ça faudra analyser les DLLs du systeme avec un debugger, Apres pour les fonctions kernel (Nt/Zw), aucune idée, je ne suis jamais aller plus loin que le SYSENTER.

                Sous Linux, vu que le kernel est open-source, tu peut juste regarder la source puis essayer de faire ta propre version.

                C# dev

                github.com/DavyWk

                1 réponse Dernière réponse
                0
                • AlexMogA Hors-ligne
                  AlexMogA Hors-ligne
                  AlexMog
                  Modérateur spécialisé
                  a écrit sur dernière édition par
                  #8

                  Sous Windows tu peut recoder les fonctions en usermode, pour ça faudra analyser les DLLs du systeme avec un debugger, Apres pour les fonctions kernel (Nt/Zw), aucune idée, je ne suis jamais aller plus loin que le SYSENTER.

                  Sous Linux, vu que le kernel est open-source, tu peut juste regarder la source puis essayer de faire ta propre version.

                  PAs besoin de se prendre la tête.

                  Tu vas dans les headers (sous linux, c'est pour ça que linux est plus adapté) system, et tu regarde simplement la liste des fonctions system 😉 (les fonctions system sont déjà codées en ASM, tu ne peux pas aller plus bas niveau, c'est donc la "base" de la programmation en C, tu peux trouver une liste des fonctions system sur Google aussi!) Une fois que tu as les fonctions system, tout le reste c'est de la logique! Interdit toi les fonctions de la libC, et tu verra, tu codera un Printf rapidement, et tu comprendra comment il marche (ça marche avec absolument toutes les fonctions de la libC, je t'invites à lires mes cours, qui n'utilisent QUE des fonctions system.)

                  Enjoy!

                  Multiplayer GameDev @ Unexpected

                  Mon CV

                  1 réponse Dernière réponse
                  0
                  • D Hors-ligne
                    D Hors-ligne
                    davydavek
                    a écrit sur dernière édition par
                    #9

                    PAs besoin de se prendre la tête.

                    Tu vas dans les headers (sous linux, c'est pour ça que linux est plus adapté) system, et tu regarde simplement la liste des fonctions system 😉 (les fonctions system sont déjà codées en ASM, tu ne peux pas aller plus bas niveau, c'est donc la "base" de la programmation en C, tu peux trouver une liste des fonctions system sur Google aussi!) Une fois que tu as les fonctions system, tout le reste c'est de la logique! Interdit toi les fonctions de la libC, et tu verra, tu codera un Printf rapidement, et tu comprendra comment il marche (ça marche avec absolument toutes les fonctions de la libC, je t'invites à lires mes cours, qui n'utilisent QUE des fonctions system.)

                    Enjoy!

                    Il demandait comment réécrire les fonctions système, pas celles de la libc.

                    Ça c'est aussi faisable sur Windows (windows.h), juste que c'est un peu moins bien documenté.

                    C# dev

                    github.com/DavyWk

                    1 réponse Dernière réponse
                    0
                    • AlexMogA Hors-ligne
                      AlexMogA Hors-ligne
                      AlexMog
                      Modérateur spécialisé
                      a écrit sur dernière édition par
                      #10

                      Il demandait comment réécrire les fonctions système, pas celles de la libc.

                      Ça c'est aussi faisable sur Windows (windows.h), juste que c'est un peu moins bien documenté.

                      Théoriquement, c'est possible de les recoder, mais en ASM uniquement.

                      Multiplayer GameDev @ Unexpected

                      Mon CV

                      1 réponse Dernière réponse
                      0

                      Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                      Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                      Grâce à votre participation, ce message peut devenir encore meilleur 💗

                      S'inscrire Se connecter
                      Répondre
                      • Répondre à l'aide d'un nouveau sujet
                      Se connecter pour répondre
                      • Du plus ancien au plus récent
                      • Du plus récent au plus ancien
                      • Les plus votés


                      • Se connecter

                      • Connectez-vous ou inscrivez-vous pour faire une recherche.
                      Powered by NodeBB Contributors
                      • Premier message
                        Dernier message
                      0
                      • Catégories
                      • Récent
                      • Mots-clés
                      • Populaire
                      • Web
                      • Utilisateurs
                      • Groupes