Freigeben über


Anwendungsverhalten

Ein weiterer Aspekt der Anwendungsentwicklung ist der Unterschied zwischen lokalen oder intracomputerinternen Vorgängen und Verhalten, wenn Vorgänge zwischen zwei vernetzten Computern stattfinden. Es gibt Anwendungsverhalten, die auf einem lokalen Computer problemlos funktionieren können, aber wenn sie über ein Netzwerk ausgeführt werden, führen sie zu erheblicher Leistungsbeeinträchtigung und Ressourcenverbrauch. Das folgende Anwendungsverhalten sollte beim Entwickeln von Windows Sockets-Anwendungen vermieden werden.

Zu vermeidende Verhaltensweisen

  • Chatty-Anwendungen.

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

  • Serialisierte Transaktionen.

    Unnötige Serialisierung von Transaktionen kann zu einer schlechten Leistung führen und die Skalierbarkeit beeinträchtigen. Beispielsweise nehmen 1000 serialisierte Transaktionen mindestens 1000 * RTT zum Abschluss an. Ein besserer Ansatz besteht darin, nicht zusammenhängende Transaktionen parallel auszuführen. Wenn serialisierte Anwendungen mit chatty-Anwendungen kombiniert werden, kann die Reaktionsfähigkeit ernsthaft beeinträchtigt werden.

    Anmerkung

    Die ordnungsgemäße Deserialisierung einer Anwendung kann schwierig sein. Wenn die Umstellung von serialisiert auf parallel zu schwierig ist, sollten Sie in Betracht ziehen, mehrere Transaktionen mit weniger großen Transaktionen zu kombinieren.

     

  • Fat Transactions.

    Anwendungen, die unnötige Byte im Netzwerk senden, gelten als Fettanwendungen. Anwendungen, die unnötige Byte im Netzwerk senden, erhöhen den Netzwerkaufwand, und die Leistung wird beeinträchtigt. Diese Situation kommt häufig aus ineffizienten Datenstrukturen oder ineffizienten Datenstreamings. Um dies zu beheben, optimieren Sie Datenstrukturen, oder ziehen Sie die Verwendung der Komprimierung in Betracht.

In den folgenden Abschnitten werden Aspekte der Anwendungsentwicklung berücksichtigt.

Leistungsstarke Windows Sockets-Anwendungen