Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 29-09-2016 18:28:53

BioKore
Membre
Lieu : Dans l'espace !
Distrib. : Mint 18
Noyau : Linux 4.4.0-21-generic
(G)UI : Nemo 3.0.6
Inscription : 23-09-2016
Site Web

des cours sur... l'optimisation ?

Bonjour à tous,

Alors voilà, je m'intéresse depuis quelques temps à la programmation (C / C++ et Python principalement), et, je me demandais si vous sauriez m'orienter vers des cours de C / C++ considérant une certaine importance vis-à-vis de l'optimisation du code ?

Pour info, j'ai déjà une petite base dans ces langages (conditions, boucles, pointeurs etc...), et, même si je n'en ai pas un usage vraiment poussé pour le moment, je souhaiterais néanmoins prendre de bonnes habitudes pour coder en utilisant le moins de ressources possible (ram, cpu, stockage etc..) tout en conservant quelque chose de fiable et stable bien évidemment. Je pense même que l'optimisation et la fiabilité vont de paire.

Alors bien entendu, je me met dans le bain avec des cours d’algorithmie, mais si je pouvais avoir aussi un cours sur l'optimisation en elle-même, ou mieux encore, un cours de niveau intermédiaire en C tenant compte d'une réelle rigueur sur l'optimisation, ce serait super (quitte à me remettre un petit peu à l'assembleur pour les passages les plus nécessiteux).



Merci d'avance !

Mint 18 // essai de débian + Cinnamon pour migration. Développeur du temps libre...
config : Portable Core I7 // 4Go Ram // SSD256Go // cg Intel HD3000 (on ne peut pas tout avoir) // wi-fi Alpha AWUS036H <- marche trop fort !
Enfin : OpenBSD 6.0 + XFCE

Hors ligne

#2 29-09-2016 19:21:37

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : des cours sur... l'optimisation ?

Salut,

La règle en terme d'optimisation, c'est de ne pas faire de micro-optimisation (ne pas chercher à gagner 3 opérations dans une boucle de 50 tours au prix d'un peu de lisibilité...) Ça, le compilateur s'en charge, et bien mieux que l'humain.

Rendre un code plus efficace en terme de ressources, c'est d'abord utiliser les algorithmes plus efficaces. Pour cela, il faut comprendre les algorithmes, comprendre leur complexité, comprendre le coût des différentes opérations (et des primitives du langages ou des fonctions des bibliothèques externes utilisées.)

Donc, si tu veux apprendre quelque chose, je te conseille de regarder du côté de la « Complexité algorithmique. »

smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 29-09-2016 19:24:25

otyugh
Membre
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016

Re : des cours sur... l'optimisation ?

captnfab a écrit :

La règle en terme d'optimisation, c'est de ne pas faire de micro-optimisation (


D'avance, c'est extrêmement difficile de ne pas le faire quand même. J'ai passé des centaines d'heures à faire des trucs très futiles ou très tordues par souci d'élégance tongue
C'est <DUR> de laisser une répétition. tongue

Hors ligne

#4 30-09-2016 14:17:19

BioKore
Membre
Lieu : Dans l'espace !
Distrib. : Mint 18
Noyau : Linux 4.4.0-21-generic
(G)UI : Nemo 3.0.6
Inscription : 23-09-2016
Site Web

Re : des cours sur... l'optimisation ?

Bonjour,

Merci pour ces retours. Donc, si je comprends bien, le mieux est de faire un code propre / lisible, en utilisant des algo. bien foutus, et laisser le compilo faire le reste. J'ai bien compris ? ^^

Mais pourtant, même selon les algo, il y a de l'optimisation à faire non ? Je veux dire, qu'est-ce qui est le plus gourmand dans une boucle : faire un tableau fixe de 10000 cases pour être sure que tout passe ou faire un tableau dynamique avec ré-allocation dans les cas de besoin (sachant que les valeurs peuvent prendre 3 cases comme 10000 de manière "totalement" aléatoire) ?
Sur un sujet comme ça, c'est ni l'algo, ni le compilateur qui doit faire l'optimisation, pourtant je suis sure que l'une des deux méthodes, est, dans la majeure partie des cas, plus optimisée non ?

Merci encore pour vos lumières.

Mint 18 // essai de débian + Cinnamon pour migration. Développeur du temps libre...
config : Portable Core I7 // 4Go Ram // SSD256Go // cg Intel HD3000 (on ne peut pas tout avoir) // wi-fi Alpha AWUS036H <- marche trop fort !
Enfin : OpenBSD 6.0 + XFCE

Hors ligne

#5 30-09-2016 15:18:43

otyugh
Membre
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016

Re : des cours sur... l'optimisation ?

Faut voir "l'ordre" de complexité d'un algo en fait. ça te dit rien O(n), O(2^n), etc. ? Cadeau tongue https://fr.wikipedia.org/wiki/Analyse_d … lgorithmes

Hors ligne

Pied de page des forums