OVH Cloud OVH Cloud

Winsock: senddata performances

3 réponses
Avatar
Jean-Marc
Hello tous,

une question pour les habitués de Winsock: Je suis en train
de faire des mesures de performances de transfert de données
en utilisant Winsock.
Mes mesures sont mauvaises: Je fais un senddata d'un buffer de
1 méga, et j'obtiens en moyenne un taux de transfert de 40 Ko par
secondes, en 5 paquets de 8192 octets.

- Savez vous si c'est une limite de winsock?
- Avez vous des informations sur les différences de perfs
que l'on peut attendre en utilisant directment l'API socket?

Remarque et question subsidiare:
Je passe à senddata une variable de type String.

-Y a t'il un bénéfice connu en terme de performances
à utiliser un byte array?

Je continue mes essais, mais tout feedback sera le bienvenu :-)

Merci à tous et bonne journée?

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr

3 réponses

Avatar
valvolt.dyndns.org
salut,

il me semble, mais c'est a confirmer, qu'entre chaque paquet envoyé, tu
a 100ms de pause. si tu a 10 paquet ca fait 1s de perdue.
Avatar
Jean-Marc
"valvolt.dyndns.org" <""(Exatex)"@(valvolt.dyndns.org)"> a écrit dans le
message de news:
salut,

il me semble, mais c'est a confirmer, qu'entre chaque paquet envoyé, tu
a 100ms de pause. si tu a 10 paquet ca fait 1s de perdue.



Hello,

merci de ta réponse. Ca confirme assez bien ce que j'observe.
Mon programme semble envoyer des paquets de 8192 octets, et
je note une pause de +/- 150 ms entre chaque paquet.
Je vais essayer directement avec les sockets via les API,
on verra.

Encore merci,

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Jean-Marc
"valvolt.dyndns.org" <""(Exatex)"@(valvolt.dyndns.org)"> a écrit dans le
message de news:
salut,

il me semble, mais c'est a confirmer, qu'entre chaque paquet envoyé, tu
a 100ms de pause. si tu a 10 paquet ca fait 1s de perdue.



Wo wo wo wo woooo !!!

J'ai trouvé!
On peut continuer à utiliser Winsock normalement, le seul truc, au lieu de
faire

winsock1.Senddata my_data

on fait:

Send(winsock1.SocketHandle, my_data(0), size_data, 0)

aves my_data étant un tableau de Byte.

Résultat: mon fichier de 3.6 mega passe en 2 secondes au lieu de 1 minute 30
!

Conclusion: pas de Winsock quand la vitesse est critique :-(

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;