Comportamento do Aplicativo

Outro aspecto do desenvolvimento de aplicativos a ser considerado é a diferença de comportamento entre operações locais ou intracomputadores e o comportamento quando as operações ocorrem entre dois computadores em rede. Há comportamentos de aplicativo que podem funcionar bem em um computador local, mas quando executados em uma rede, causam degradação significativa de desempenho e consumo de recursos. Os comportamentos de aplicativo a seguir devem ser evitados ao desenvolver aplicativos de soquetes Windows.

Comportamentos a serem evitados

  • Aplicativos tagarelas.

    Alguns aplicativos executam muitas transações pequenas. Quando combinado com a sobrecarga de rede associada a cada transação desse tipo, o efeito é multiplicado. Na rede, transações pequenas podem consumir tantos recursos quanto transações grandes. Uma abordagem melhor é combinar muitas transações pequenas em uma única transação grande.

  • Transações serializadas.

    A serialização desnecessária de transações pode resultar em um desempenho ruim e afetar a escalabilidade. Por exemplo, 1000 transações serializadas levam pelo menos 1000 * RTT para serem concluídas. Uma abordagem melhor é executar transações não relacionadas em paralelo. Quando aplicativos serializados são combinados com aplicativos tagarelas, a capacidade de resposta pode ser seriamente prejudicada.

    Observação

    Desserializar corretamente um aplicativo pode ser difícil. Se a alteração de serializada para paralela for muito difícil, considere combinar várias transações em menos transações grandes.

     

  • Transações fat.

    Aplicativos que enviam bytes desnecessários na rede são considerados aplicativos gordos. Aplicativos que enviam bytes desnecessários na rede aumentam a sobrecarga de rede e o desempenho é dificultado. Essa situação geralmente vem de estruturas de dados ineficientes ou streaming de dados ineficiente. Para corrigir isso, otimize as estruturas de dados ou considere o uso de compactação.

As seções a seguir abordam aspectos do desenvolvimento de aplicativos a serem considerados.

Aplicativos soquetes de Windows de alto desempenho