Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF – vaše škola fotografie

 

Kdo lektoruje pražský letní workshop v ZOO a Botanické zahradě?

V dnešní soutěži hrajeme o:

Dárkový certifikát v hodnotě 1000 Kč



Přenos dat po LAN

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Přenos dat po LAN

Autor: Jaroslav Šmíd ♂

16:25:41 12.08.2012

> vytvořil sem program který posílá data mezi programi po lokální síťi a potřebuji ho zrychlit?

Nevím

> Moje otázka zní jestli bude rychlejší, když soket vytvořím jenom jednou za celý běh programu

Jestli vytváříš socket pokaždé (40x za sekundu) pro ten samý cíl, tak to asi není dobré řešení. Vytvoření a pak uzavření socketu samozřejmě něco stojí, 40x za sekundu není málo. Určitě si polepšíš, pokud se k serveru připojíš a zůstaneš připojen, dokud tě server neodpojí. Po odpojení (např. kvůli nějakému timeoutu) prostě socket zavřeš a připojíš se znovu, až budeš potřebovat další data. Stačí ti jen kontrolovat návratové hodnoty / chybové kódy fcí jako epoll_wait, poll, select, read, write, ... nebo co používáš.

> popřípadě jestli se dají přenosy zrychlit pokud budu posílat data ve vláknech
Hlavně nevytvářej X vláken, ve kterých zapisuješ do jednoho socketu. Výsledkem by mohl být pěkný bordel, co přijde na server.
Pokud potřebuješ posílat data do X serverů současně, tak možná, ale možná by stačil i obyčejný epoll_wait, poll, nebo select, nebo i neblokovací read/write. Někdy může být řešení s vlákny pomalejší kvůli přepínání kontextu a akorát si přiděláš práci se synchronizací. Nejlepší bude, když to vyzkoušíš a použiješ to, co je pro daný případ "to správné".

Citovat příspěvek

 

Přenos dat po LAN

Autor: Milannn ♂

23:59:45 09.08.2012

Dobrý den,
vytvořil sem program který posílá data mezi programi po lokální síťi a potřebuji ho zrychlit?

Nyní to funguje tak, že vždy když chci něco poslat, tak vytvářím na klientovi nový soket, přes který se posílají data(zhruba 40x za vteřinu asi 2MB => 40x 2MB).

Moje otázka zní jestli bude rychlejší, když soket vytvořím jenom jednou za celý běh programu, popřípadě jestli se dají přenosy zrychlit pokud budu posílat data ve vláknech.

děkuji za budoucí odpovědi :)

Milan

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: