Temos uma DLL usada como a camada intermediária entre o front
end do nosso site e nosso sistema de bilhetagem de back-end. O
método de inserção no sistema de bilhética é um pouco complicado de
explicar, mas a versão curta é que é lenta. O melhor cenário que
recebi é um tempo de envio de 9 segundos.
O problema real, porém, é que eu só posso obter esse tempo
através de um aplicativo do Windows, não através de um site da Web
ASP.NET. Configurei um aplicativo de teste do Windows e uma página
da Web para teste e, embora o código seja copiado entre eles, a
página da Web está enviando consistentemente em 17 a 20 segundos,
enquanto o aplicativo do Windows está recebendo de 8 a 11
segundos.
O que poderia estar causando isso?
EDIT: Em resposta a algumas das respostas ...
A chamada para o serviço da Web está ocupando a maior parte do
tempo, mas não tenho controle sobre esse serviço da Web, pois ele é
fornecido pelo fornecedor do sistema de emissão de tickets. Preciso
descobrir por que o serviço da web está tomando diferentes
quantidades de tempo quando está sendo chamado de um tipo diferente
de aplicativo. O código é exatamente o mesmo em ambos os casos, e
está executando um loop, reportando os tempos registrados.
O código é:
for (int i = 0; i < numIterations; i++)
{
startTimes[i] = DateTime.Now;
try
{
cvNum = Clearview.Submit(req, DateTime.Now, DateTime.Now, false);
}
catch (Exception ex)
{
exceptionCount++;
lblResult.Text += @"
Exception Caught: " + ex.Message + @"
";
}
endTimes[i] = DateTime.Now;
}
É o mesmo loop em ambos os casos, e estou marcando a hora certa
antes e depois da chamada para a biblioteca, que faz o
processamento adicional e, em seguida, chama o serviço da web. Mas
esse processamento deve ser consistente, não é? Eu travei durante a
depuração e não vi nenhum atraso na chamada real de serviço da web
...
EDITAR Novamente: Trabalhando com Ants, em ambos os casos, 99,4%
do tempo está sendo enviado apenas na chamada de serviço da web.
Parece não haver nenhuma diferença lá ... exceto que quando o tempo
limite da página da web está demorando mais do que o aplicativo do
Windows.