Voila un sujet qui ne manquera pas de faire rire ceux du roster 1
étant donnés les problèmes de latence qui m'assaillent ces derniers jours (et me font profondément ch...).
Et bien voila, ce post est là pour présenter aux gens qui pourraient en avoir l'utilité la méthode que j'ai employé pour réduire mon calvaire.
Whitedark, si tu lis ce post, corriges les bourdes s'il y en a, tu devrais vite comprendre ce que je fais.
je passe la plupart des détails techniques mais pour que vous puissiez comprendre ce qu'on fait, voila un rapide résumé:
la latence n'est pas dûe qu'à un problème de connection souvent; une part plus ou moins importante de ce décalage entre la saisie des ordres que vous faites et la réception des données par le serveur distant est en fait dûe à la durée que met votre propre ordinateur à envoyer ces données. Ces données passent en effet par TCP et leur envoi est limité en quantité et en fréquence par un algorithme (algo de NAGLE) qui est laissé par défaut sur votre ordi. Concrètement, cet algo nous oblige à attendre d'avoir une certaine quantité de données à envoyer avant de pouvoir le faire. Or, on veut justement le contraire, c'est-à-dire tout envoyer en continu.
Et ben, on va gentiment lui faire comprendre qu'il est temps de prendre sa retraite à cette algorithme.
Démarche:
Si vous avez XP comme OS, allez dans le menu windows et puis exécuter.
Si vous avez un autre OS, tapez "regedit" dans la fenêtre UNIX (si vous avez LINUX) ou bien dans la fenêtre "invite de commandes" ( faites une recherche de programme si vous l'avez pas encore en raccourci sur votre bureau)
Une fois regedit lancé:
Dans l'arborescence de gauche cherchez: HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters\\\\Interfaces\\\\
Vous devriez avoir dans ce dossier "Interfaces" un ou plusieurs sous-dossiers du genre: {7DBA6DCA-FFE8-4002-A28F-4D2B57AE8383}. (un truc barbare quoi)
Ensuite, vous allez répéter la manipulation suivante sur chacun de ses dossiers.
Sélectionnez le 1er des dossiers, dans la fenêtre de droite apparait un bon nombres de fichiers.
Clic droit dans cette fenêtre, faites "Nouveau" => "Valeur DWORD" et nommez ce fichier "TcpAckFrequency", ensuite faites un clic droit sur ce fichier que vous venez de céer => "Modifier" et dans le cadre "Données de la valeur" mettez 1.
Répétez cette opération (de créer le fichier "TcpAckFrequency" et de lui mettre la valeur 1 pour chacun de vos dossiers du type: {7ADBD32-...}
2ème Etape :
Refermez toute votre arborescence via les petits "-".
Cherchez maintenant: HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\MSMQ\\\\Parameters
N'allez pas dans les sous-dossiers de "Parameters" mais sélectionnez juste "Parameters" lui-même.
Là dans la fenêtre de droite, clic droit => "Nouveau" => "Valeur DWORD" et nommez ce fichier "TCPNoDelay", faites un clic droit => "Modifier" et mettez la valeur 1.
Validez toussa, faites un reboot du PC et voilà fini !
Il peut arrivez que vous n'ayez pas le dossier "MSMQ" dans votre registre, dans ce cas là: http://rapidshare.com/files/77255080/msmq.reg.html.
Téléchargez ceci et installez le (faites "oui" pour modifier le registre).
Si vous devez d/l ce dossier "MSMQ" vous n'aurez pas à le modifier, il l'est déjà, vous n'aurez qu'à reboot le PC après l'avoir installer.
Voila, ça devrait améliorer d'au moins 100 ms la latence de la plupart (pour moi, c'est une goutte d'eau dans la mer étant donné que j'ai une moyenne de latence à 2k...
)
PS: pour ceux qui ont un MAC, démerdez vous
ou demandez à quelqu'un qui gère mieux cet os que moi
J'espère que ça vous sera utile.