DataSnap vs Internet
Bom Dia Pessoal,
estou com uma dúvida e gostaria de saber se alguém pode me ajudar.
Tenho a seguinte situação:
Criei um servidor DataSnap utilizando o Rest e FireDAC (JSONReflection) em Delphi XE7 e Firebird 2.5.5.
Quando estou em um servidor Local, a performance das querys é excelente, porém quando altero para um servidor na nuvem (locaweb), há uma perca de performance significativa, o sistema fica bem mais lento que o servidor Local.
Aumentei a velocidade da internet, porém ainda há uma perca de performance significativa, apesar de ter melhorado um pouco.
Realizei alguns testes com o acesso externo (nuvem, locaweb):
1) Verifiquei se o problema estava do lado servidor, porém constatei que a performance da query é excelente, então descartei problemas com o servidor.
2) Verifiquei se o problema estava no FireDAC, no momento que os dados são passados para o componente do FireDAC no lado cliente, porém constatei que a performance também é excelente.
3) No lado cliente alterei o componente TDSRestConnection da seguinte forma:. Desta maneira, houve um ganho de performance, mas não o suficiente para ao menos chegar próximo à performance do servidor local.
3) Verifiquei então que o problema está no Get do comando de requisição do lado cliente, na chamada do método e aquisição dos dados, ou seja, provavelmente é um problema de internet.
Minha dúvida então é: Qual o motivo de ter tanta diferença entre uma conexão local e externa? Há algo que eu possa fazer para otimizar isso além de aumentar a internet?
Desde já agradeço a atenção de todos.
Luiz
estou com uma dúvida e gostaria de saber se alguém pode me ajudar.
Tenho a seguinte situação:
Criei um servidor DataSnap utilizando o Rest e FireDAC (JSONReflection) em Delphi XE7 e Firebird 2.5.5.
Quando estou em um servidor Local, a performance das querys é excelente, porém quando altero para um servidor na nuvem (locaweb), há uma perca de performance significativa, o sistema fica bem mais lento que o servidor Local.
Aumentei a velocidade da internet, porém ainda há uma perca de performance significativa, apesar de ter melhorado um pouco.
Realizei alguns testes com o acesso externo (nuvem, locaweb):
1) Verifiquei se o problema estava do lado servidor, porém constatei que a performance da query é excelente, então descartei problemas com o servidor.
2) Verifiquei se o problema estava no FireDAC, no momento que os dados são passados para o componente do FireDAC no lado cliente, porém constatei que a performance também é excelente.
3) No lado cliente alterei o componente TDSRestConnection da seguinte forma:
DSRestConnection.HTTP.Peer.UseNagle := False;
3) Verifiquei então que o problema está no Get do comando de requisição do lado cliente, na chamada do método e aquisição dos dados, ou seja, provavelmente é um problema de internet.
Minha dúvida então é: Qual o motivo de ter tanta diferença entre uma conexão local e externa? Há algo que eu possa fazer para otimizar isso além de aumentar a internet?
Desde já agradeço a atenção de todos.
Luiz
Luiz Meinecke
Curtidas 0