Loading s7crs_l07_socket_perfs...

enib_small.png S7-CRS L07_SocketPerfs — Sockets et performances

Les fichiers servant de support à cette expérimentation seront obtenus par la commande $ cp -r /home/TP/sujets/CRS_L07_SocketPerfs . depuis les salles de Labo de l'ENIB, ou par la commande $ sftp -P 55555 -r votre_identifiant@sftp.enib.fr:/home/TP/sujets/CRS_L07_SocketPerfs . depuis l'extérieur de l'ENIB.

Cet exercice sert principalement d'entraînement pour réutiliser des notions déjà découvertes dans les sujets précédents.
Toutefois, il apporte un éclairage différent sur les techniques de communication utilisées jusqu'alors.
Effectivement, nous nous proposons d'évaluer le coût en temps et en énergie de diverses stratégies de transfert d'information par sockets.

Un processus client générera de manière répétée un bloc de données qui sera transmis à un processus serveur qui en effectuera la somme et la transmettra en retour au client.
Selon les étapes, la communication reposera sur TCP, pour transmettre du texte et des données brutes (binaires).

  • Nous nous intéressons ici aux performances des diverses solutions explorées.
  • Les mesures de performances n'ont de sens que si le code est compilé en mode “optimisé” ; toutes les options de mise au point sont alors désactivées.
  • Pour tester le fonctionnement de vos programme pendant la mise au point, vous pourrez vous contenter de les fabriquer avec make.
  • En revanche, pour relever les performances il faudra refabriquer l'ensemble avec make rebuild opt=1 pour activer les optimisations.
{1 #txt } Transfert de messages textuels en TCP
{2 #bin } Transfert de données binaires en TCP
{3 #energy } Comparaison des dépenses énergétiques

À travers cette expérimentation, nous venons de mettre en évidence le fait que le formatage des données à transmettre dans une communication a un impact considérable sur les performances de cette dernière.
En particulier, le fait de transmettre des données sous une forme qui soit potentiellement lisible par un être humain (du texte) représente un surcoût démesuré alors que ce choix est probablement arbitraire et inutile au bon fonctionnement de la réalisation.
Même si nous décidons que, dans le cadre d'une application particulière, les performances mesurables en terme de durée ne représentent pas un élément critique parmi les critères attendus de cette application, l'impact en terme de consommation énergétique mérite toutefois d'être considéré.