J'ai une bibliothèque implémentée basée sur telnetlib de Python. Et récemment, j'ai remarqué que les performances dans Windows XP et Linux sont si différentes.Performances Telnet sous Windows XP et Linux
ci-dessous le script, je concevoir trois opérations, « obtenir des unités », « presser la touche Entrée », « obtenir des unités avec des options »
« obtenir des unités » retour est de longue chaîne, « obtenir des unités avec des options » retour plus court chaîne de caractères, et "appuyez simplement sur" pour retourner la chaîne la plus courte. Supposons que vous passiez plus de temps, il semblerait que votre commande devrait être "obtenir des unités", "obtenir des unités avec des options", puis "appuyer sur Entrée".
mais le résultat réel dans Windows XP est:
obtenir des unités: 3,67200016975 s obtenir des unités avec des options: 10,0319998264 s presser la touche Entrée: 10.0 de
même test dans Ubuntu: obtenir des unités: 3.91432785988 obtenir des unités avec des options: 2,86995506287 presser la touche Entrée: 2,05337381363
il semble que windows XP a de bonnes performances sur le paquet IP grand, mais pour les petits paquets, il est si mauvais.
Je l'ai testé manuellement, en utilisant le client Telnet de Windows, Putty. Utiliser wireshark pour capturer des données telnet. Et trouver que pour un petit paquet, le retard de paquet est si long, environ 0s
j'ai essayé de changer la fenêtre tcp, mais n'ai pas aidé.
quelqu'un peut-il donner quelques suggestions?
try:
begin_g = time.time()
for i in range(50):
connection.write('ZUSI:OMU;')
ret = connection.read_until('<')
ret = connection.read_until('<')
end_g = time.time()
elapse_g = end_g-begin_g
clean_begin_t = time.time()
for i in range(50):
ret = ipa.get_units()
clean_end_t = time.time()
elapse_c = clean_end_t-clean_begin_t
begin_wu = time.time()
for i in range(50):
connection.write('')
ret = connection.read_until_prompt()
end_wu = time.time()
elapse_wu = end_wu-begin_wu
merci. je l'ai:). 0.2s retard est causé par "L'algorithme ACK retardé" de Windows, sa valeur par défaut est 0.2s – Rainman