Udostępnij przez


Zachowanie aplikacji

Innym aspektem tworzenia aplikacji, który należy wziąć pod uwagę, jest różnica w zachowaniu między operacjami lokalnymi lub intrakomputerowymi oraz zachowaniem podczas wykonywania operacji między dwoma komputerami sieciowymi. Istnieją zachowania aplikacji, które mogą działać poprawnie na komputerze lokalnym, ale w przypadku uruchamiania w sieci powodują znaczne obniżenie wydajności i zużycie zasobów. Podczas tworzenia aplikacji windows Sockets należy unikać następujących zachowań aplikacji.

Zachowania, których należy unikać

  • Aplikacje czatty.

    Niektóre aplikacje wykonują wiele małych transakcji. W połączeniu z obciążeniem sieci skojarzonym z każdą taką transakcją efekt jest mnożony. W sieci małe transakcje mogą zużywać tyle zasobów, ile czasu to duże transakcje. Lepszym rozwiązaniem jest połączenie wielu małych transakcji w jedną dużą transakcję.

  • Serializowane transakcje.

    Niepotrzebna serializacji transakcji może spowodować niską wydajność i wpłynąć na skalowalność. Na przykład 1000 serializacji transakcji trwa co najmniej 1000 * RTT do ukończenia. Lepszym podejściem jest równoległe uruchamianie niepowiązanych transakcji. Gdy serializowane aplikacje są łączone z aplikacjami czatty, czas odpowiedzi może być poważnie utrudniony.

    Nuta

    Prawidłowe deserializacji aplikacji może być trudne. Jeśli zmiana z serializacji na równoległą okaże się zbyt trudna, rozważ połączenie wielu transakcji w mniej dużych transakcji.

     

  • Transakcje tłuszczu.

    Aplikacje, które wysyłają niepotrzebne bajty w sieci, są uznawane za aplikacje tłuszczu. Aplikacje, które wysyłają niepotrzebne bajty w sieci, zwiększają obciążenie sieci, a wydajność jest utrudniona. Taka sytuacja często wynika z nieefektywnych struktur danych lub nieefektywnego przesyłania strumieniowego danych. Aby rozwiązać ten problem, zoptymalizuj struktury danych lub rozważ użycie kompresji.

W poniższych sekcjach przedstawiono aspekty tworzenia aplikacji, które należy wziąć pod uwagę.

aplikacje Windows Sockets o wysokiej wydajności