Faut il retirer tous les Serial.print, pour l'exploitation ?

Bonjour, une fois un code, semble t-il ok; alors que l'on ne s'en sert pas (aucun écran) les Serial.print ont ils une incidence sur la stabilité, la mémoire, ralentissement ? Car cela peut être utile en cas de debug. Philippe.

mpg5_66:
Bonjour,
une fois un code, semble t-il ok; alors que l’on ne s’en sert pas (aucun écran) les Serial.print ont ils une incidence sur la stabilité, la mémoire, ralentissement ? Car cela peut être utile en cas de debug.
Philippe.

bonsoir
Il faut etre pragmatique :
Si ton code fonctionne bien avec le serial en debug ET que rien ne t’impose de t’en passer , garde le :grin:

Bonjour,

Ce que j'ai pris l'habitude de faire, j'entoure toutes mes lignes de code qui ne servent que pendant le développement avec une directive pour le compilateur. Tout ce qui est entre ces options n'est pas pris en compte pour le compilateur si la directive n'est pas présente. Ca permet de résoudre les problèmes que tu évoques.

// déclaration au début du sketch
// Une fois le sketch fonctionnel, tu commentes la ligne suivante
#define DEBUG


// dans la bouche loop()
#ifdef DEBUG

    Serial.print (F("Test"));
    etc ....

#endif

Là où cela peut devenir trèèès agaçant, c'est quand le programme ne fonctionne plus correctement lorsque l'on enlève les serial.print.

Enfin, je dis ça, normalement cela ne devrait jamais arriver avec un code bien écrit. D'ailleurs cela ne m'est jamais arrivé... Ou alors y a longtemps... Disons depuis au moins une semaine :grinning:

Blague à part : il ne faut pas abuser des Serial.print de debug.

Leur présence, surtout en grand nombre, ralentit l'exécution du programme. Et quand on les supprime on peut effectivement révéler des failles de programmation du fait d'une exécution dans un contexte différent.

De surcroît, un programme comporte en général plusieurs parties mises au point successivement. On n'a pas besoin d'avoir tous les Serial.print de debug simultanément.

Exemple : => Je code mes fonctions de dialogue avec une sonde de température. Je vérifie que cela marche bien en utilisant des serial.print, puis je les désactive. => Je code mes fonctions de dialogue avec l'écran LCD. Je vérifie que cela marche bien en utilisant des serial.print, puis je les désactive. etc.

Au final, ma conf de debug ressemble souvent à ça :

#define DEBUG //mettre en commentaire pour désactiver tous les debug
#ifdef DEBUG
//commenter chaque ligne pour désactiver les debug associés
#define DEBUG_SONDE
#define DEBUG_LCD
#define DEBUG_etc
#endif

void accesSonde(...)
{
#ifdef DEBUG_SONDE
  Serial.print(...);
#endif
  ...
}