Baixa Performance Abertura de Rotinas MVC

Ao abrir uma rotina MVC - Modelo X com muitos elementos - 3 Grids, 1 Form, botões para usar em 2 grids, mensagem de rodapé leva cerca de 9 segundos. No segundo acesso é de cerca de 6 segundos.

Já foi utilizado Caches SetCacheView(.T.) no FwMBrowse da tela principal. E no model já foi utilizado SetOnDemand().

Tabelas Envolvidas já possuem índices adequados, porém no caso as tabelas envolvidas estão quase vazias (Não se trata de volume de dados nas tabelas).

Ambiente Avaliado: ORACLE 19C, Binários Atualizados, Release 2310 (Dicionário no Banco de Dados), Usando VPN FortClient, Internet de 600Mpbs, Ping Médio de 22ms, Latência SmartClient x AppServer 31/32 milisegundos (Medido pela função ADVPL Ping ).

** Seria possível melhorar o desempenho de abertura de rotinas MVC para cerca de 2 segundos?

O que seria mais adequado observar e avaliar?

A única maneira de melhorar o desempenho é remover campos e objetos da Tela MVC? Tirando o aspecto de infraestrutura (BD, Servidores, Rede, VPN), pela linguagem existe algo que poderia ser feito? **

compartilhar
  • Gera um logprofiler, é possível ler o mesmo para identificar os pontos de lentidão. Além disso, verifica como fica o resultado do MallocIO desse servidor.

    Daniel Mendes   11 de Mar de 2024
  • Daniel, obrigado pelo Retorno.

    Sobre o MallocIO o time de infra retornou que retorna condições boas do Servidor.

    LogProfiler não foi utilizado porque é algo que ocorre em todas as rotinas MVC mais complexas (Por isso a pergunta se existe algo no código ADVPL que pode ser feito para melhorar) - não ocorre em apenas rotinas MVCs específicas.

    Validando pelo SmartClient HTML com WebAgent a performance se mostrou totalmente diferente. Foi percebido que o acesso inicial do browse caiu de 30 segs para 20 segs. E o acesso aos detalhes da rotina MVC caiu de 7-9 segs para 2 segs como esperado.

    Carlos Eduardo Niemeyer Rodrigues   12 de Mar de 2024
  • Realmente esse problema de lentidão nas telas MVC eu também observei, é algo geral do MVC, qualquer tela com mais elementos fica bastante pesada para carregar, e se for complexa com 4, 5, 6 ou mais elementos de dados então leva uns 10 seg para carregar. Isso piora absurdamente com conexões mais lentas, parece ser algo que sobrecarrega a comunicação entre o smartclient e o servidor, não é um problema de performance da aplicação em si, algo de comunicação, vejo muito espaço para melhorar esse problema, alguma otimização na comunicação entre o servidor e o client deve reduzir muito esse problema.

    Cirilo Rocha   16 de Mar de 2024
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mvc performance ou faça a sua própria pergunta.