none
Aplicação ASP.NET MVC muitoooo lenta... RRS feed

  • Pergunta

  • Pessoal...

    Acabei de levantar minha aplicação MVC para o host, porém percebi que no momento que chamo o site ele demora muito para abrir...
    Isso já acontecia no Debug do VS, porém eu achava que era por conta de estar trabalhando dentro do servidor do VS.

    Existe algum tipo de compilação especial para otimizar?
    Existe algum tipo de configuração a ser feita que eu não to sabendo?

    Aguardo resposta.


    Danilo Fernandes - Favor marcar como útil esta resposta caso ela tenha te ajudado.
    quarta-feira, 5 de janeiro de 2011 15:58

Respostas

  • Danilo,

    Primeiro vc precisa saber onde está a lentidão. Os possíveis vilões são:

    1) Gargalo de CPU

    2) Gargalo de I/O

    3) Gargalo de banda de rede

    Vc descobre isso por um task manager, por exemplo. Aí resta saber as causas da lentidão. Se a CPU estiver entupindo no processo do Web Server (aspnet_wp para IIS < 6, ou o processo associado ao app pool em IIS's mais novos), provavelmente o problema está no seu código. Algum loop infinito ou algoritmos mal otimizados.

    Acesso a disco, se vc estiver fazendo alguma leitura de arquivos ou coisa do tipo. Esse caso é mais raro em aplicações Web.

    POr último, rede, pode ser desde o acesso do browser até a máquina (no caso de ambiente de desenvolvimento isso é praticamente descartado), ou pode ser entre o Web Server e um banco de dados, com uma consulta que retorne muitos registros ou esteja mal otimizada.

    Ferramentas de profiler como da Red Gate ou da JetBrains (todas pagas) ajudam muito para localizar esse tipo e problema.

     

    Abraço,

    Eric

    • Marcado como Resposta Danilo Fernandes sexta-feira, 7 de janeiro de 2011 16:27
    quinta-feira, 6 de janeiro de 2011 11:53

Todas as Respostas

  • Danilo,

    Primeiro vc precisa saber onde está a lentidão. Os possíveis vilões são:

    1) Gargalo de CPU

    2) Gargalo de I/O

    3) Gargalo de banda de rede

    Vc descobre isso por um task manager, por exemplo. Aí resta saber as causas da lentidão. Se a CPU estiver entupindo no processo do Web Server (aspnet_wp para IIS < 6, ou o processo associado ao app pool em IIS's mais novos), provavelmente o problema está no seu código. Algum loop infinito ou algoritmos mal otimizados.

    Acesso a disco, se vc estiver fazendo alguma leitura de arquivos ou coisa do tipo. Esse caso é mais raro em aplicações Web.

    POr último, rede, pode ser desde o acesso do browser até a máquina (no caso de ambiente de desenvolvimento isso é praticamente descartado), ou pode ser entre o Web Server e um banco de dados, com uma consulta que retorne muitos registros ou esteja mal otimizada.

    Ferramentas de profiler como da Red Gate ou da JetBrains (todas pagas) ajudam muito para localizar esse tipo e problema.

     

    Abraço,

    Eric

    • Marcado como Resposta Danilo Fernandes sexta-feira, 7 de janeiro de 2011 16:27
    quinta-feira, 6 de janeiro de 2011 11:53
  • Obrigado Eric pela resposta...

    De fato, fui fazer um estudo e era um erro no código...

    Para falar a verdade era coisa de amador... :)

    Corrigi  erro... Porém, fiz todos os teste no Debug do VS e funciona blz... Fiz um teste com um servidor e funciona... Mas quando subi para o GoDaddy ele da um erro do tipo...

     

    Object reference not set to an instance of an object.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error: 

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace: 

    [NullReferenceException: Object reference not set to an instance of an object.]
      KelsorFernandesSite.Models.ConnC.Consulta(String query) +318
      KelsorFernandesSite.Models.ImovelModelsConsult.buscaBairrosImovelModelsConsult() +298
      KelsorFernandesSite.Controllers.KelsorFernandesSiteController..ctor() +59

     

    Não houve jeito de descobrir qual o problema...

    Achei que ele não estivesse achando o banco mas nem é o caso... Modifiquei o caminho e nada...
    Fiz o mesmo teste no meu IIS interno do computador e deu o mesmo erro...

    To perdido pois, funciona no Debug, num servidor e depois não funciona nem aqui nem no GoDaddy...

    Alguma idéia?


    Danilo Fernandes - Favor marcar como útil esta resposta caso ela tenha te ajudado.
    sexta-feira, 7 de janeiro de 2011 16:32
  • Qual era o problema da lentidao?

     

     


    J.Luz
    terça-feira, 1 de fevereiro de 2011 13:05
  • Depois de muito tempo.....

    Cara....já tive esse problema. A solução foi alterar a identidade do app pool. Minha aplicação estava usando o DefaultAppPool com Identidade ApllicationPoolIdentity, modifiquei para LocalSystem. Para alterar você deve selecionar o app pool, configurações avançadas, Modelo de Processo, Identidade.

     

    É isso ai.

    domingo, 6 de maio de 2012 20:11