Anwendungsverhalten

Ein weiterer aspekt der Anwendungsentwicklung ist der Unterschied im Verhalten zwischen lokalen oder computerinternen Vorgängen und dem Verhalten, wenn Vorgänge zwischen zwei Netzwerkcomputern stattfinden. Es gibt Anwendungsverhalten, das auf einem lokalen Computer möglicherweise gut funktioniert, aber wenn es über ein Netzwerk ausgeführt wird, führt dies zu einer erheblichen Leistungsbeeinträchtigung und einem erheblichen Ressourcenverbrauch. Die folgenden Anwendungsverhalten sollten vermieden werden, wenn Sie Windows Sockets-Anwendungen entwickeln.

Zu vermeidende Verhaltensweisen

  • Chatty-Anwendungen.

    Einige Anwendungen führen viele kleine Transaktionen aus. In Kombination mit dem Netzwerkmehraufwand, der jeder solchen Transaktion zugeordnet ist, wird der Effekt multipliziert. Im Netzwerk können kleine Transaktionen so viele Ressourcen und so viel Zeit wie große Transaktionen verbrauchen. Ein besserer Ansatz besteht in der Kombination vieler kleiner Transaktionen zu einer einzelnen großen Transaktion.

  • Serialisierte Transaktionen.

    Eine unnötige Serialisierung von Transaktionen kann zu einer schlechten Leistung führen und sich auf die Skalierbarkeit auswirken. Für 1.000 serialisierte Transaktionen wird beispielsweise mindestens 1.000 * RTT verwendet. Ein besserer Ansatz ist die parallele Ausführung nicht verbundener Transaktionen. Wenn serialisierte Anwendungen mit chattenden Anwendungen kombiniert werden, kann die Reaktionsfähigkeit erheblich beeinträchtigt werden.

    Hinweis

    Das ordnungsgemäße Deserialisieren einer Anwendung kann schwierig sein. Wenn sich der Wechsel von serialisiert zu parallel als zu schwierig erweist, sollten Sie erwägen, mehrere Transaktionen in weniger großen Transaktionen zu kombinieren.

  • Fat Transactions( Fat-Transaktionen).

    Anwendungen, die unnötige Bytes im Netzwerk senden, werden als fat-Anwendungen betrachtet. Anwendungen, die unnötige Bytes im Netzwerk senden, erhöhen den Netzwerkaufwand, und die Leistung wird beeinträchtigt. Diese Situation wird häufig durch ineffiziente Datenstrukturen oder ineffizientes Datenstreaming geschaffen. Um dieses Problem zu beheben, optimieren Sie Datenstrukturen, oder erwägen Sie die Verwendung der Komprimierung.

In den folgenden Abschnitten werden aspekte der Anwendungsentwicklung erläutert, die berücksichtigt werden sollten.

Hochleistungsanwendungen Windows Sockets