Anwendungsverhalten

Ein weiterer Aspekt der Anwendungsentwicklung, der berücksichtigt werden sollte, ist der Unterschied im Verhalten zwischen lokalen oder computerinternen Vorgängen und dem Verhalten, wenn Vorgänge zwischen zwei Netzwerkcomputern stattfinden. Es gibt Anwendungsverhalten, die auf einem lokalen Computer gut funktionieren, aber wenn sie über ein Netzwerk ausgeführt werden, führen sie zu erheblichen Leistungseinbußen und Ressourcenverbrauch. Das folgende Anwendungsverhalten sollte beim Entwickeln von Windows Sockets-Anwendungen vermieden werden.

Zu vermeidende Verhaltensweisen

  • Chatte Anwendungen.

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

  • Serialisierte Transaktionen.

    Unnötige Serialisierung von Transaktionen kann zu einer schlechten Leistung führen und sich auf die Skalierbarkeit auswirken. Beispielsweise müssen 1000 serialisierte Transaktionen mindestens 1.000 * RTT abschließen. Ein besserer Ansatz besteht darin, nicht verwandte Transaktionen parallel auszuführen. Wenn serialisierte Anwendungen mit chatten Anwendungen kombiniert werden, kann die Reaktionsfähigkeit erheblich beeinträchtigt werden.

    Hinweis

    Eine ordnungsgemäße Deserialisierung einer Anwendung kann schwierig sein. Wenn sich der Wechsel von serialisiert auf parallel als zu schwierig erweist, sollten Sie mehrere Transaktionen in weniger große Transaktionen kombinieren.

     

  • Fat-Transaktionen.

    Anwendungen, die unnötige Bytes über das Netzwerk senden, gelten als Fettanwendungen. Anwendungen, die unnötige Bytes im Netzwerk senden, erhöhen den Netzwerkaufwand, und die Leistung wird beeinträchtigt. Diese Situation entsteht häufig durch ineffiziente Datenstrukturen oder ineffizientes Datenstreaming. Um dies zu beheben, optimieren Sie Datenstrukturen, oder erwägen Sie die Verwendung der Komprimierung.

In den folgenden Abschnitten werden Aspekte der Anwendungsentwicklung behandelt, die berücksichtigt werden sollten.

Leistungsstarke Windows Sockets-Anwendungen