// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Determinando um perfil de uma Aplicação Corporativa no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Determinando um perfil de uma Aplicação Corporativa no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Determinando um perfil de uma Aplicação Corporativa no NetBeans IDE

O NetBeans IDE inclui uma ferramenta de determinação de perfil poderosa que pode fornecer informações importantes sobre o comportamento de runtime das aplicações corporativas. Usando a ferramenta de determinação de perfil, é possível monitorar facilmente os estados do thread e obter dados sobre o desempenho da CPU e uso de memória de uma aplicação.

Este documento demonstrará como usar a ferramenta de determinação de perfil para obter dados sobre uma aplicação corporativa simples, que é implantada como um WAR em um servidor de aplicações. Este documento mostra como usar o IDE para obter resultados de determinação de perfil acerca do seguinte.

* Comportamento de uma aplicação em runtime
* Tempo de CPU usado por um dos métodos de aplicação
* Criação do objeto

Se você estiver implantando uma aplicação em um Tomcat local registrado, GlassFish Server ou instalação JBoss, será possível determinar um perfil da aplicação com apenas alguns cliques e quase nenhuma configuração. O processo de determinação de perfil do projeto é muito parecido com o uso do comando Executar no IDE. Você poderá começar a determinar facilmente perfis de projetos de aplicações corporativas ou módulos Web e EJB individuais selecionando Perfil > Determinar Perfil do Projeto Principal no menu principal.


*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote Java EE 7.3, 7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |JDK 7 ou 8 

|GlassFish Server |3.1, 4.0 
|===

[NOTE]
====
* Caso esteja usando um determinador de perfil pela primeira vez, é recomendada a leitura de link:../java/profiler-intro.html[+Introdução à Determinação de Perfil de aplicações Java no NetBeans IDE+], que fornece uma visão geral das tarefas de monitoramento e determinação de perfil.
* Se você estiver usando o NetBeans IDE 7.2 ou anterior, consulte link:../../72/javaee/profiler-javaee.html[+Criando Perfis de Aplicações Corporativas no NetBeans IDE 7.2+]
* Neste documento, você determinará um perfil de uma aplicação corporativa implantada no GlassFish Server. A configuração preferencial e mais fácil para a determinação de um perfil de uma aplicação Web ou corporativa durante o desenvolvimento é quando a aplicação está em execução em um servidor Tomcat, GlassFish ou JBoss local.
====


== Sobre a determinação de perfil de Aplicações Corporativas no IDE

Na determinação de perfil de aplicações corporativas, na maioria dos casos, você desejará analisar o desempenho da aplicação para ver o tempo de execução dos métodos do projeto. Isso permite solucionar problemas na aplicação e tentar melhorar seu desempenho. Em alguns casos, você também pode desejar obter dados sobre o uso da memória para otimizar a coleta de lixo.

O processo de determinação de perfil de aplicações corporativas, módulos EJB e aplicações Web é basicamente o mesmo utilizado para executar o projeto usando o comando Executar. Após selecionar a tarefa e especificar as opções de determinação de perfil, clique em Executar na caixa de diálogo Selecionar Tarefa de Determinação de Perfil para iniciar a sessão de determinação de perfil. Quando você inicia a sessão de determinação de perfil, o IDE faz o seguinte:

* Compila a aplicação
* Inicia o servidor de destino no modo de determinação de perfil
* Implanta a aplicação
* Anexa à aplicação
* Abre o browser da página web (se especificado nas propriedades do projeto)
* Abre a guia de Resultados de Determinação Ao Vivo de Perfil

Dependendo das opções de determinação de perfil, o IDE iniciará imediatamente a exibição dos resultados de determinação de perfil na guia Resultados da Determinação Ao Vivo de Perfil. Em alguns casos, como quando os métodos raiz de determinação de perfil foram especificados, pode ser necessário realizar algumas ações no browser Web antes de os resultados serem exibidos.


=== Projetos de Determinação de Perfil de Aplicações Corporativas

Uma aplicação corporativa, criada no IDE, normalmente, será um projeto de aplicação Web implantado em um servidor de aplicações como um arquivo da Web (WAR), ou um projeto de aplicação corporativa que contém uma aplicação Web e bibliotecas adicionais e é implantado como um arquivo de aplicação corporativa (EAR).

Caso deseje implantar a aplicação como um arquivo compactado EAR, você pode criar um projeto de aplicação corporativa NetBeans que contenha os subprojetos e as bibliotecas. O projeto de aplicação corporativa não contém arquivos de código-fonte, apenas informações sobre construção e implantação da aplicação e os metadados de configuração do servidor. Em um projeto de aplicação corporativa, a lógica da aplicação geralmente está contida no módulo EJB e o código-fonte da camada de apresentação está contido no módulo Web.

Se você tiver todos os códigos-fonte do projeto da aplicação corporativa, o método mais fácil e prático para a determinação de perfil da aplicação é determinar o perfil do projeto em vez de um dos subprojetos do projeto. Isso garante que todo o código necessário seja compilado e implantado e que a aplicação se comporte corretamente. É possível determinar o perfil de um projeto de aplicação corporativa adotando um dos seguintes procedimentos:

* Se o projeto de aplicação corporativa estiver definido como o Projeto Principal, clique em Determinar Perfil do Projeto Principal na barra de ferramentas do IDE ou selecione Perfil > Determinar Perfil do Projeto Principal no menu principal.
* Clique com o botão direito do mouse no nó do projeto de aplicação corporativa na janela Projetos e selecione Determinar Perfil no menu pop-up.

Na determinação de perfil de uma aplicação corporativa, é possível aumentar a relevância dos resultados da determinação de perfil especificando os métodos raiz e usando filtros de instrumentação para limitar as classes que terão o perfil determinado. Isso ajuda a minimizar o impacto que a sobrecarga da determinação de perfil impõe ao desempenho da aplicação e aumenta a relevância dos resultados da determinação de perfil.

Diferentemente das aplicações Web, ao executar uma aplicação corporativa, o browser nem sempre abre automaticamente. (Isso depende da configuração do projeto.) Isso significa que, em alguns casos, pode ser necessário iniciar manualmente o front end da aplicação Web e, em seguida, chamar o código, como a lógica de negócios em um módulo EJB do browser.


=== Determinando o Perfil de Subprojetos do Módulo EJB e Web

É possível iniciar uma sessão de determinação de perfil de qualquer projeto de módulo EJB ou de módulo Web. Nesse caso, talvez você queira tentar uma das seguintes abordagens:

* *Determinando o perfil de um módulo EJB.* Ao optar por essa abordagem, você provavelmente precisará chamar o código de aplicação manualmente no browser da Web ou outro cliente porque os projetos do módulo EJB não são, geralmente, configurados para abrir um browser. Depois que o módulo EJB estiver implantado no servidor, chame seu código da mesma forma que faria para depurar ou avaliar a funcionalidade da aplicação, normalmente iniciando o front end da aplicação e, em seguida, realizando ações no browser.
* *Determinando o perfil de um módulo Web.* Quando você optar por essa abordagem, será necessário compilar e implantar o módulo EJB ao servidor antes de determinar o perfil do projeto do módulo Web. Normalmente, o código do EJB é executado como resultado de uma ação de usuário em um browser. Se essa ação for executada/tratada pelo código da aplicação Web, será possível ver o código do EJB em sua árvore de chamadas.


== Criando o Projeto de Amostra

Neste documento, você irá determinar o perfil da amostra da aplicação ServletStateless. A aplicação ServletStateless é uma aplicação Web corporativa simples que está incluída como uma amostra de projeto no IDE.

Para criar a aplicação ServletStateless , realize as etapas a seguir.

1. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; ⌘-Shift-N no Mac) no menu principal.
2. No assistente para Novos Projetos, selecione a categoria Amostras > Java EE.
3. Selecione o projeto Servlet Stateless. Clique em Próximo.
4. Selecione uma localização para o projeto. Clique em Finalizar.

Quando você clicar em Finalizar, o IDE criará a amostra de projeto ServletStateless. Você pode ver o projeto ServletStateless na janela Projetos.

[NOTE]
====
* Por default, quando se utiliza o IDE para determinar o perfil de um projeto, o IDE determinará o perfil do projeto selecionado na janela Projetos se mais de um projeto estiver aberto. Quando você selecionar Executar >Definir Projeto Principal no menu principal e definir um projeto como Projeto Principal, o Projeto Principal é determinado por defaut. Você pode clicar com o botão direito do mouse em um nó de projeto na janela Projetos e selecionar Perfil no menu pop-up.
* Caso deseje determinar o perfil de um arquivo como uma página  ``.jsp``  ou um servlet, clique com o botão direito do mouse no arquivo e selecione Determinar o Perfil do Arquivo no menu pop-up. O comportamento é parecido com o de Determinar Perfil do Projeto (Principal), mas ao iniciar a sessão de determinação de perfil, a página web selecionada será aberta no browser em vez de na página web default do projeto.
====


== Monitorando a Aplicação

Monitorar uma aplicação permite que informações de alto nível sobre as propriedades do JVM de destino sejam obtidas, incluindo atividade de thread e alocações de memória. Como o monitoramento de uma aplicação impõe um custo adicional muito baixo, você pode executar a aplicação neste modo por períodos maiores. Quando você escolhe a tarefa Monitorar, a aplicação de destino é iniciada sem nenhuma instrumentação.

Para monitorar a aplicação ServletStateless, realize as etapas a seguir.

1. Selecione Executar >Definir Projeto Principal > ServletStateless para definir o projeto como principal.

Quando você definir o projeto como Projeto Principal, o nome do projeto estará em negrito na janela Projetos.



. Escolha Perfil > Perfil do Projeto Principal no menu principal.

NOTE:  Selecione o JDK 1.7 ou JDK 1.8 caso seja solicitado a selecionar uma plataforma Java para determinação de perfil.



. Selecione Monitorar na caixa de diálogo Selecionar Tarefa de Criação de Perfil.


. Clique em Executar.

NOTE:  Caso não tenha usado o determinador de perfil antes, você pode ser solicitado a calibrá-lo antes que possa clicar em Executar. Para obter mais informações sobre a calibração do determinador de perfil, consulte a seção link:../java/profiler-intro.html#calibrate[+Usando o Determinador de Perfil pela Primeira Vez+] na link:../java/profiler-intro.html[+Introdução à Determinação de Perfil de Aplicações Java no NetBeans IDE+].

Quando você clica em Executar, o IDE constrói a aplicação, inicia o servidor no modo de perfil e a implanta a aplicação no servidor. Em seguida, o IDE se liga à aplicação e inicia a recuperação de dados.

Os dados em threads no JVM de destino são exibidos na guia Threads. A guia Threads exibe dados em todos os threads, threads de servidor, assim como threads na aplicação.

É possível visualizar informações adicionais de monitoramento clicando no botão Visão Geral de Telemetria na janela Perfil para abrir a janela Visão Geral de Telemetria VM. A janela Visão Geral de Telemetria VM permite que você obtenha rapidamente uma visão geral dos dados de monitoramento em tempo real. É possível clicar duas vezes em qualquer um dos gráficos na janela Visão Geral de Telemetria VM para abrir uma versão maior do gráfico.

Durante a monitoração de uma aplicação corporativa, os gráficos de Memória (Heap) e Memória (GC) podem ajudá-lo a visualizar rapidamente o uso de memória da aplicação. Coloque o cursor sobre o gráfico para abrir uma dica de ferramenta com informações mais detalhadas. Se o tamanho do heap ou o número de gerações sobreviventes estiver crescendo constantemente, isso pode indicar um vazamento de memória. Caso haja a suspeita de fuga de memória, talvez seja melhor determinar o perfil do uso de memória da aplicação.

image::images/monitor-memory-telemetry.png[title="Gráfico da memória (GC) mostrando informações do GC"] 


== Analisando o Desempenho da Aplicação

A tarefa de Análise do Desempenho da CPU permite a visualização de dados no nível de método (runtime) do desempenho da CPU da sua aplicação e o número de vezes que os métodos são chamados. Você pode optar por analisar o desempenho da aplicação inteira ou selecionar uma raiz de determinação de perfil para limitar a determinação a uma parte do código da aplicação.

image::images/sample-task.png[title="Modo de Amostra de Aplicação selecionado no painel da CPU da caixa de diálogo Selecionar Tarefa de Determinação de Perfil"]

Ao selecionar a tarefa de análise do desempenho da CPU na janela Tarefas de Determinação de Perfil, você pode escolher o quanto você deseja determinar da aplicação selecionando uma das seguintes opções.

* *Rápido (usado como exemplo).* Neste modo, o IDE faz as amostras da aplicação e e usa um rastreamento de pilha periodicamente. Essa opção é menos precisa do que os métodos de instrumentação, mas o custo adicional é menor. Essa opção ajuda a localizar métodos que talvez você queira instrumentar.
* *Advançado (instrumentado).* Neste modo, os métodos definidos da aplicação são instrumentados. O IDE registra onde os threads entram e saem dos métodos do projeto, permitindo ver quanto tempo é gasto em cada método. Quando você insere um método, os threads geram um evento "entrada de método". Os threads geram um evento "saída de método" correspondente ao sair do método. Os timestamps para os dois eventos são registrados. Esses dados são processados em tempo real.

Você pode escolher instrumentar todos os métodos na aplicação ou limitar a instrumentação a um subconjunto do código da aplicação ao especificar um ou mais *métodos-raiz*. Especificar um método raiz pode reduzir significativamente a sobrecarga da determinação de perfil. Um método-raiz é um método, classe ou pacote em seu código-fonte que você especifica como uma raiz da instrumentação. Os dados de criação de perfil são coletados quando um dos threads da aplicação entra e sai da raiz de instrumentação. Nenhum dado de criação de perfil é coletado até que um dos threads da aplicação entre no método-raiz. Você pode especificar um método-raiz usando o menu pop-up no código-fonte ou clicando em *personalizar* para abrir a caixa de diálogo Editar Raízes da Criação de Perfil.

*Dicas para a Determinação de Perfil de Aplicações Web*

* Além as principais classes Java, uma aplicação corporativa geralmente chamará uma série de métodos em classes no servidor-alvo. Por esse motivo, é importante escolher um filtro para limitar os códigos-fonte que são instrumentados. É recomendado usar o filtro *Determinar Perfil somente para classes de projeto* ao determinar o perfil de aplicações corporativas.
* Os resultados da determinação de perfil são coletados assim que a sessão é iniciada. Se você estiver usando o método Avançado e os métodos raiz de determinação de perfil não foram especificados, alguns dados interessantes estarão disponíveis imediatamente após a inicialização do servidor, mais especificamente a inicialização de filtros e listeners da aplicação Web. Caso tenha especificado alguns métodos raiz de determinação de perfil, esses dados provavelmente não serão obtidos, dependendo dos métodos raiz selecionados.
* Normalmente, não existe o interesse em dados sobre listeners e filtros, então clique em Redefinir Resultados Coletados para limpar esses dados. Os primeiros dados utilizáveis serão coletados após algum código ser chamado como um resultado de alguma ação no browser, normalmente exibindo uma página JSP que usa JavaBeans e/ou tags personalizadas ou processando o método  ``doGet`` / ``doPost``  do servlet. Observe que os dados coletados quando a aplicação é inicializada pela primeira vez, frequentemente, representam somente o comportamento de inicialização da aplicação Web.
* Se uma página JSP estiver sendo exibida pela primeira vez, ela é compilada internamente no servlet pelo servidor, o que afeta a árvore de chamadas e o tempo dos métodos. Além disso, o comportamento dos servlets e de outro código da aplicação pode ser levemente diferente durante a primeira execução do que em um ambiente de produção verdadeiro, onde a aplicação está em constante execução. Para obter os dados de determinação de perfil que melhor representem o desempenho verdadeiro da aplicação, você deve gerar alguma carga de trabalho no código de perfil determinado antes de medir qualquer tempo (árvores de chamadas não devem ser afetadas por isso). É possível utilizar geradores de carga para ajudá-lo com isso. (Para saber mais, consulte link:../java/profile-loadgenerator.html[+Usando um Gerador de Carga no NetBeans IDE+]). A capacidade de cache de diversos browsers também pode impactar o desempenho.

NOTE:  Se você criar o perfil de aplicações web no servidor de aplicações GlassFish em uma máquina Windows, a inicialização do servidor para criação de perfil poderá falhar se o NetBeans IDE estiver instalado em um caminho que contenha espaços (como a instalação padrão em  ``C:\Program Files\netbeans-7.4`` ). A solução é instalar/copiar o diretório de instalação do NetBeans IDE em um local que não contenha espaços no caminho (como  ``C:\netbeans-7.4`` ).


=== Amostragem da Aplicação

Escolha a opção Rápido da aplicação caso precise de uma visão geral do comportamento da aplicação inteira e não deseje instrumentar os métodos. No modo de perfil Rápido, o IDE obtém periodicamente rastreamentos de pilha. A sobrecarga do modo de perfil Rápido é menor que no modo de perfil Avançado.

Neste exercício, você analisará o desempenho da aplicação ao selecionar o modo de perfil Rápido.

1. Pare a sessão de monitoramento clicando no botão Parar na janela Determinador de Perfil.
2. Escolha Perfil > Perfil do Projeto Principal no menu principal.
3. Selecione CPU na caixa de diálogo Selecionar Tarefa de Criação de Perfil.
4. Selecione o modo *Rápido (usado como exemplo)*.
5. Selecione *Determinar Perfil somente das classes do projeto* na lista drop-down do Filtro. Clique em Executar.

NOTE:  Este filtro limita as classes instrumentadas para as classes encontradas no projeto de aplicação corporativa. Clique em *Exibir valor do filtro* para visualizar uma lista das classes filtradas.

image::images/sample-task.png[title="Modo de Amostra de Aplicação selecionado no painel da CPU da caixa de diálogo Selecionar Tarefa de Determinação de Perfil"]

Observe na escala da caixa de diálogo que a sobrecarga estará relativamente baixa.



. Clique no botão Resultados da Determinação Ao Vivo de Perfil na janela Determinador de Perfil para abrir a guia Resultados da Determinação Ao Vivo de Perfil.

image::images/sample-task-results.png[title="Modo dos Resultados Amostragem da Aplicação"]

Na guia Resultados da Determinação Ao Vivo de Perfil, pode ser observado o runtime do método  ``serviço``  para o servlet na classe  ``Servlet2Stateless``  e que o método foi chamado uma única vez.


=== Instrumentando Todos os Métodos

No modo de Determinação de Perfil da Aplicação, os métodos da sua aplicação são instrumentados. Embora uma medição mais exata do desempenho da aplicação seja recebida, a sobrecarga da determinação de perfil é maior do que se o modo de amostra tivesse sido escolhido. Métodos raiz de determinação de perfil podem ser especificados para limitar os métodos que são instrumentados e reduzir a sobrecarga da determinação de perfil. Para algumas aplicações, a especificação de um método-raiz pode ser a única forma de obter dados detalhados e/ou realistas de desempenho, pois a criação de perfil da aplicação inteira pode gerar dados de perfil demais, fazendo com que a aplicação se torne inútil ou até mesmo causar um erro fatal da aplicação.

Neste exercício, você analisará o desempenho da aplicação instrumentando todos os métodos na aplicação corporativa.

1. Pare a sessão de monitoramento clicando no botão Parar na janela Determinador de Perfil.
2. Escolha Perfil > Perfil do Projeto Principal no menu principal.
3. Selecione CPU na caixa de diálogo Selecionar Tarefa de Criação de Perfil.
4. Selecione o modo *Avançado (instrumentado)*.
5. Selecione *Determinar Perfil somente das classes do projeto* na lista drop-down do Filtro. Clique em Executar.

image::images/advanced-cpu-task.png[title="Modo de Determinação de Perfil da Aplicação selecionado no painel da CPU da caixa de diálogo Selecionar Tarefa de Determinação de Perfil"]

Observe na escala na caixa de diálogo que a sobrecarga estará maior que no modo Rápido da aplicação.



. Clique no botão Resultados da Determinação Ao Vivo de Perfil na janela Determinador de Perfil para abrir a guia Resultados da Determinação Ao Vivo de Perfil.

É possível ver que a guia Resultados da Determinação Ao Vivo de Perfil exibe o runtime dos métodos  ``init``  e  ``serviço``  para o servlet na classe  ``Servlet2Stateless``  e que cada método foi chamado uma única vez. O método  ``init``  na classe  ``StatelessSessionBean``  também foi chamado.

image::images/cpu-pane1-results.png[title="Modo dos Resultados de Determinação de Perfil da Aplicação"]

NOTE:  Por defaut, o modo de atualização automática está ativo para que os dados exibidos sejam atualizados continuamente, a cada poucos segundos. É possível ativar e desativar o modo de atualização automática clicando no botão Atualização Automática na barra de ferramentas.

Para melhorar a legibilidade dos dados coletados, é possível usar o filtro Resultados, na exibição de Hot Spots da janela Resultados da Determinação Ao Vivo de Perfil, para filtrar os resultados exibidos. O filtro Resultados filtra apenas a exibição dos resultados e não afeta as classes que são instrumentadas. Quando você usa o filtro Resultados, os resultados que iniciam com, contêm ou terminam com um padrão definido são filtrados. Também é possível usar expressões regulares mais complexas para filtragem. Os dados são filtrados com base nos nomes de pacote/classe/método exatamente como eles aparecem na primeira coluna da tabela de resultados. Mais de um padrão pode ser especificado, separando os padrões por um espaço ou uma vírgula com espaço.



. No browser, digite seu nome no campo e clique em Enviar Consulta.

image::images/cpu-pane1-results1.png[title="Modo dos Resultados de Determinação de Perfil da Aplicação"]

Ao clicar em Enviar Consulta, você poderá ver que a guia Resultados da Determinação Ao Vivo de Perfil é atualizada para refletir a ação no browser. O clique no botão chamou o método  ``sayHello``  na classe  ``StatelessSessionBean``  e chamou o método  ``init``  novamente. O método  ``serviço``  do servlet na classe  ``Servlet2Stateless``  também foi chamado novamente. A guia também exibe quanto tempo foi gasto em cada um dos métodos.

É possível clicar no botão Análise Detalhada para ver uma representação gráfica do tempo relativo gasto em diversas áreas da aplicação, por exemplo, servlets, listeners etc. Clique no gráfico para obter uma análise detalhada dos resultados de determinação de perfil exibidos.

image::images/drill-down.png[title="Gráfico de Análise Detalhada do tempo relativo gasto em servlets na aplicação"]

Instrumentar uma aplicação sempre irá impor uma sobrecarga ao determinar o perfil da aplicação. Em uma aplicação simples como essa, a sobrecarga não é perceptível, porém, em uma aplicação complexa, a sobrecarga pode ser bem significativa. É possível reduzir a sobrecarga limitando as classes, que têm seu perfil determinado, selecionando um método raiz de determinação de perfil.


=== Usando Métodos Raiz de Determinação de Perfil

Neste exercício, você irá determinar o perfil de apenas uma parte da aplicação. Este método de determinação de perfil deve ser usado caso você saiba onde possa existir uma carência no desempenho, ou se deseja determinar o perfil de alguma parte específica do código, como um ou vários servlets. Esse método normalmente impõe uma sobrecarga de determinação de perfil significativamente menor que a instrumentação de todos os métodos da aplicação. Quando você instrumenta apenas parte da aplicação, somente os dados nos quais você tem interesse serão coletados e exibidos.

Para determinar o perfil de parte de uma aplicação, é necessário definir um ou mais métodos raiz de determinação de perfil. O IDE instrumenta apenas os métodos que são chamados por um thread inserindo um método raiz de determinação de perfil. Por exemplo, se você definir o método  ``sayHello``  na classe  ``StatelessSessionBean``  como o método raiz e usar o filtro Determinar Perfil somente das classes do projeto, o IDE iniciará a instrumentação dos métodos quando o método for chamado e um thread de aplicação inserir o método. Nessa aplicação, o construtor  ``init``  não será instrumentado, pois ele foi chamado antes do  ``sayHello`` .

image::images/profileroot-sayhello-project.png[title="Gráfico de Análise Detalhada do tempo relativo gasto em servlets na aplicação"]

Caso selecione o filtro Determinar Perfil de todas as classes, o IDE instrumentará todos os métodos chamados pelo  ``sayHello`` , incluindo as classes principais do Java.

image::images/profileroot-sayhello-all.png[title="Gráfico de Análise Detalhada do tempo relativo gasto em servlets na aplicação"]

NOTE:  Em uma aplicação mais complexa, talvez seja melhor especificar vários métodos raiz. É possível selecionar métodos individuais, classes inteiras ou pacotes como raiz de determinação de perfil.

Para especificar uma raiz de determinação de perfil e analisar o desempenho da aplicação, execute as etapas a seguir.

1. Pare a sessão anterior de determinação de perfil (se ainda estiver em execução) clicando no botão Parar na janela Determinação de Perfil.
2. Escolha Perfil > Perfil do Projeto Principal no menu principal.
3. Selecione CPU na caixa de diálogo Selecionar Tarefa de Criação de Perfil.
4. Selecione o modo *Avançado (instrumentado)*.
5. Clique em *Personalizar* para abrir a caixa de diálogo Editar raízes da Determinação de perfil.

Para determinar o perfil de parte de uma aplicação, é necessário primeiro especificar os métodos raiz. Ao selecionar a raiz da determinação de perfil, você limita a determinação de perfis aos métodos chamados pelo thread inserindo a raiz de determinação de perfil.



. Na caixa de diálogo Editar Raízes da Determinação de Perfil, selecione Exibir Aplicação Web na lista drop-down Selecionar Exibição.


. Expanda o nó do ServletStateless e selecione o método  ``serviço``  no pacote Servlets. Clique em OK.

image::images/edit-profiling-roots.png[title="Exibir Aplicação Web na caixa de diálogo Editar Raízes de Determinação de Perfil"]

Como alternativa, é possível selecionar Exibir Pacote para exibir todos os pacotes de códigos-fonte na aplicação e selecionar o método  ``service``  na classe  ``Servlet2Stateless``  no pacote  ``servlet.stateless`` .

image::images/edit-profiling-roots-pkg.png[title="Exibir Pacote na caixa de diálogo Editar Raízes de Determinação de Perfil"]

NOTE:  Observe que o construtor  ``servlet2stateless``  não está selecionado. É possível usar a caixa de diálogo Editar Raízes da Determinação de Perfil para limitar a instrumentação a métodos específicos em uma classe. Caso não queira limitar a instrumentação para métodos específicos, use a Exibição de Pacote para selecionar uma classe ou um pacote inteiro. Por exemplo, se você selecionar a classe  ``Servlet2Stateless``  em Exibir Pacote da caixa de diálogo Editar Raízes da Determinação de Perfil, o IDE instrumentará o construtor  ``init``  e o método  ``service`` .

Ao clicar no botão Avançado, você poderá ver que o método  ``serviço``  está listado como o único método raiz na caixa de diálogo Editar Raízes da Determinação de Perfil (Avançado). Clique em Adicionar para definir explicitamente um método digitando a assinatura e classe do método.

image::images/edit-profilingroots-pkg-adv.png[title="Caixa de diálogo Editar Raízes de Determinação de Perfil (Avançado)"]



. Clique em OK na caixa de diálogo Editar Raízes de Determinação de Perfil.

Na caixa de diálogo Selecionar Tarefa de Determinação de Perfil, você pode ver que o modo Avançado de determinação de perfil será executado usando raízes personalizadas de determinação de perfil. É possível clicar em *editar* para visualizar e modificar o método raiz selecionado. Observe que a sobrecarga da determinação de perfil agora é menor do que quando nenhum método raiz foi especificado.



. Selecione *Determinar Perfil somente das classes do projeto* na lista drop-down do Filtro. Clique em Executar.

image::images/advanced-cpu-task-custom.png[title="Modo de Perfil da Aplicação selecionado com uma raiz de determinação de perfil personalizada"]

Quando você clica em Executar, o IDE constrói e implanta a aplicação e abre o browser da Web na página do servlet.

O IDE exibe os resultados da determinação de perfil na guia Resultados Ao Vivo da Determinação de Perfil.

image::images/cpu-pane2-results.png[title="Resultados de métodos de instrumentação utilizando uma raiz de determinação de perfil"]

Observe que o IDE exibe somente os resultados para o método especificado como raiz de determinação de perfil. O thread da aplicação não inseriu nenhum outro método na aplicação após inserir a raiz de determinação de perfil.

Embora a aplicação tenha inserido outros métodos após inserir a raiz de determinação de perfil, esses outros métodos não são exibidos, pois o filtro de instrumentação limita a instrumentação para classes que são parte do projeto.



. No browser, digite seu nome no campo e clique em Enviar Consulta.

image::images/cpu-pane2-results1.png[title="Resultados de métodos de instrumentação utilizando uma raiz de determinação de perfil após chamar o método sayHello"]

Ao clicar em Enviar Consulta, você poderá ver que a guia Resultados da Determinação Ao Vivo de Perfil é atualizada para refletir a ação no browser. Clicar no botão chamou o método  ``sayHello``  na classe  ``StatelessSessionBean``  uma única vez. O método  ``serviço``  também foi chamado novamente.

Os resultados exibem o desempenho da aplicação, mas podem não representar precisamente o desempenho de uma aplicação que vem sendo executada há algum tempo. Uma maneira de emular o desempenho de uma aplicação Web em condições mais realistas é executar um script gerador de carga.



. Repita a etapa anterior algumas vezes no browser e clique em Redefinir Resultados na guia Resultados da Determinação Ao Vivo de Perfil para limpar os resultados.


. Depois que os resultados de determinação de perfil forem redefinidos, digite seu nome e clique em Enviar Consulta mais uma vez.

image::images/cpu-pane2-results2.png[title="Resultados de métodos de instrumentação utilizando uma raiz de determinação de perfil após chamar o método sayHello"]

Se você olhar os resultados de determinação de perfil, em muitos casos, verá que o desempenho melhorou.


=== Usando os Filtros de Instrumentação

Ao analisar o desempenho da CPU, você pode reduzir a sobrecarga da determinação de perfil selecionando um filtro de instrumentação na lista drop-down para limitar a determinação de perfis para o código-fonte no qual você tem interesse. Use o filtro para especificar as classes ou os pacotes que são instrumentados. Você pode selecionar entre os seguintes filtros default ou criar um filtro personalizado.

* *Determinar Perfil de todas as classes.* Se você selecionar este filtro durante a determinação de perfil de uma aplicação Web ou aplicação corporativa, todas as classes, incluindo as principais classes Java e classes do servidor serão instrumentadas. É preciso ter cuidado ao escolher essa opção de filtro, pois instrumentar muitas classes pode impor uma sobrecarga *muito* significativa.
* *Determinar Perfil somente das classes do projeto.* Caso esteja determinando o perfil de uma aplicação corporativa, é recomendado que você use esse filtro para limitar o código instrumentado para as classes no projeto. As classes do servidor não serão instrumentadas.
* *Determinar Perfil das classes de projeto e subprojeto.* Ao determinar o perfil de um projeto de aplicação corporativa contém subprojetos como uma aplicação Web, módulos EJB ou bibliotecas de classe, você pode escolher este filtro para limitar o código instrumentado para as classes de subprojetos.

É possível criar filtros personalizados para uso em projetos específicos ou para tipos específicos de determinação de perfil. Por exemplo, se você quiser um filtro de instrumentação ao determinar o perfil de aplicações Web no Oracle WebLogic Server, clique em “Editar conjuntos de filtros” para criar um conjunto de filtros que exclui as classes principais do Java, as classes do Oracle WebLogic e do NetBeans (útil quando o Monitor HTTP está ativado). Em seguida, atribua um nome ao conjunto de filtros, como “WebLogic Webapp Exclusive” e selecione esse filtro na lista drop-down Filtro ao determinar o perfil de aplicações implantadas no WebLogic Server.

image::images/custom-filter.png[title="Caixa de diálogo que aparece ao determinar um perfil pela primeira vez"]

É possível definir um filtro de instrumentação simples selecionando Filtro Rápido na lista drop-down Filtro para abrir a caixa de diálogo Definir Filtro Rápido. A seguir, é possível editar rapidamente a lista de pacotes ou classes que são instrumentados. Isso cria um Filtro Rápido que pode ser selecionado na lista drop-down Filtro.

image::images/set-quick-filter.png[title="Caixa de diálogo que aparece ao determinar um perfil pela primeira vez"]

Para obter mais informações sobre definição e uso de filtros de instrumentação, consulte a documentação de determinação de perfil no IDE.


== Analisando o Uso da Memória da Aplicação

É possível usar a ferramenta de determinação de perfil do IDE para analisar o uso de memória da aplicação corporativa para obter dados detalhados sobre a alocação de objeto ou coleta de lixo. A tarefa Analisar Uso da Memória fornece dados sobre objetos que foram alocados na aplicação alvo, como o número, o tipo e a localização dos objetos alocados.

Ao determinar o perfil do uso da memória, você não pode definir métodos-raiz de determinação de perfil e/ou filtros de instrumentação, para que todos os objetos criados durante a vida do servidor sejam rastreados. Isso pode levar a uma sobrecarga de determinação de perfil e consumo de memória significativos para servidores de aplicações complexas. Portanto, esteja ciente das possíveis limitações da sua máquina antes de realizar esse tipo de determinação de perfil. Para reduzir a sobrecarga da determinação de perfil, é possível modificar a definição, assim, o perfil será determinado apenas a cada dez objetos. Também é aconselhável desativar (limitar) o registro de rastreamentos da pilha para alocações de objeto.

Quando você determinar o perfil de aplicações corporativas para detectar vazamentos de memória, usar as métricas de Gerações Sobreviventes pode ser muito útil. Quando você rastreia o número de diversos ciclos de coleta de lixo do objetivo das gerações sobreviventes, a ferramenta poderá ajudá-lo a detectar vazamentos de memória antecipadamente, antes da aplicação usar qualquer quantidade perceptível de memória.

Para analisar o desempenho da memória, você escolhe o volume de dados que deseja obter ao selecionar uma das seguintes opções:

* *Rápida.* Quando esta opção é selecionada, o criador de perfil faz amostras da aplicação para oferecer dados limitados a objetos ativos. Os objetos ativos são todos aqueles acessíveis (e inacessíveis) que não foram reivindicados pelo Coletor de Lixo. Esta opção só rastreia os objetos ativos e não rastreia alocações ao instrumentar. Não é possível para registrar rastreamentos de pilha ou para usar pontos de criação de perfil se você selecionar esta opção. Esta opção incorre em um overhead significativamente mais baixo que a opção Avançado.
* *Avançado.* A seleção dessa opção permite que você obtenha informações sobre número, tipo e local dos objetos alocados. Os objetos alocados são aqueles criados desde o início da aplicação (ou desde que os Resultados Coletados no criador de perfil foram redefinidos pela última vez). Todas as classes carregadas atualmente pelo destino JVM (e cada nova classe, conforme é carregada) são instrumentadas para produzir informações sobre alocações de objeto. É necessário selecionar esta opção se você quiser usar pontos de criação de perfil ao analisar o uso de memória ou se você desejar gravar a pilha de chamada. Estas opções incorrem em um overhead de criação de perfil maior que a opção Rápido.

Se você selecionar a opção Avançado, também poderá definir as opções a seguir.

* *Registrar Estilo de Vida Completo do Objeto * Selecione esta opção para registrar todas as informações de cada objeto, incluindo o número de gerações sobrevividas.
* *Registrar Rastreamentos de Pilha para Alocação*. Selecione esta opção para registrar a pilha de chamadas completa. Essa opção permite exibir a árvore de chamadas reversa das chamadas de método durante a exibição de uma tela da memória.
* *Usar Pontos de Criação de Perfil definidos.* Selecione esta opção para ativar pontos de criação de perfil. Os pontos de criação de perfil desativados são ignorados. Quando essa opção está desmarcada, todos os pontos de criação de perfil no projeto são ignorados.

O medidor de Custo Adicional na janela Selecionar Tarefas de Criação de Perfil oferece uma aproximação do aumento ou diminuição no custo adicional da criação de perfil de acordo com as opções de criação de perfil selecionadas.

Agora você usará o IDE para analisar o desempenho da memória da aplicação corporativa. Se você quiser obter informações sobre gerações sobreviventes, escolha a opção *Avançada*. Como alternativa, se você quiser apenas dados sobre os objetos ativos, pode selecionar a opção *Rápido*.

1. Pare a sessão anterior de determinação de perfil (se ainda estiver em execução) clicando no botão Parar na janela Determinação de Perfil.
Quando você clica em Parar, o IDE se desconecta da aplicação.


. Escolha Perfil > Perfil do Projeto Principal no menu principal.


. Selecione *Memória* na caixa de diálogo Selecionar Tarefa de Determinação de Perfil.


. Selecione *Avançado*.


. Selecione *Registrar ciclo de vida completo do objeto* para obter dados sobre gerações sobreviventes.

NOTE:  Se selecionar essa opção, você notará que o medidor de Sobrecarga aumentará consideravelmente. Ao determinar o perfil da aplicação corporativa, pode ser que você precise aumentar a memória do IDE, devido à quantidade de dados coletados.



. Desmarque a seleção de *Usar Pontos de Determinação de Perfil definidos* (se selecionado). Clique em Executar.

image::images/profile-memory-advanced.png[title="Caixa de diálogo Selecionar Tarefa de Determinação de Perfil diálogo mostrando tarefas e opções de Memória"]

Quando você clica em Executar, o IDE compila a aplicação, inicia o servidor no modo de perfil e a implanta a aplicação no servidor. Para exibir os resultados da criação de perfil, clique em Resultados em tempo real na janela Criador de Perfil para abrir a janela Resultados em Tempo Real. A janela Resultados Ao Vivo exibe informações sobre o tamanho e o número de objetos que estão alocados no JVM de destino. Além dos objetos alocados pela aplicação corporativa, os resultados também incluem todos os objetos alocados pelo servidor de aplicações.

image::images/profile-memory-results.png[title="Guia de Resultados da Determinação de Perfil mostrando resultados de determinação de perfil do uso da memória"]

Por default, os resultados são armazenados e exibidos pelo número de bytes em tempo real, mas você pode clicar em um cabeçalho de coluna para alterar como os resultados são exibidos. Você também pode filtrar os resultados ao digitar um nome de classe na caixa de filtro abaixo da lista.

link:/about/contact_form.html?to=3&subject=Feedback:%20Profiling%20Enterprise%20Applications[+Enviar Feedback neste Tutorial+]



== Consulte Também

Este documento demonstrou as abordagens básicas para obter os dados de determinação de perfil ao determinar o perfil da aplicação corporativa que é implantada no servidor de aplicações do GlassFish.

Para obter informações mais detalhadas sobre as definições e funcionalidades de criação de perfil não abordadas neste documento, consulte a documentação incluída no produto e disponível no item de menu Ajuda.

Para ver documentos relacionados, consulte os seguintes recursos:

* link:http://wiki.netbeans.org/wiki/view/NetBeansUserFAQ#section-NetBeansUserFAQ-Profiler[+Perguntas mais frequentes do Determinador de Perfil do NetBeans+]
Um documento contendo as perguntas frequentes sobre a determinação de perfil de aplicações no NetBeans IDE
* link:http://wiki.netbeans.org/wiki/view/FaqProfilerProfileFreeForm[+FAQ: Criando o Perfil de um projeto de Forma livre+]
* link:../java/profiler-screencast.html[+Screencast: Pontos de Determinação de Perfil, Gráfico de Análise Detalhada, Heap Walker+]
Demonstração de algumas das funcionalidades da determinação de perfis no NetBeans IDE.
* link:../../../community/magazine/html/04/profiler.html[+Criação Avançada de Perfil: Teoria na Prática+]
* link:http://profiler.netbeans.org/index.html[+profiler.netbeans.org+]
Site do projeto de determinação de perfil do NetBeans
* link:http://blogs.oracle.com/nbprofiler/[+Blog do Profiler do NetBeans+]
* link:http://profiler.netbeans.org/mailinglists.html[+Listas de Correspondência do Profiler do NetBeans+]
* link:http://profiler.netbeans.org/docs/help/5.5/index.html[+Usando o Determinador de Perfil do NetBeans 5.5+]

<<top,início>>

