Ao definir o perfil de um aplicativo, a visualização Console não aparece na perspectiva Definição de Perfis e Logs, por padrão.
Para abrir a visualização Console na perspectiva Definição de Perfis e Logs, selecione Janela->Mostrar Visualização->Console.
Para que o stdout apareça no Console, clique em Janela->Preferências->Executar/Depurar->Console e selecione Mostrar quando o programa grava na saída padrão.
Ao criar um novo arquivo de origem do Probekit, o assistente permite escolher a codificação XML a ser utilizada. A seleção padrão é ASCII. Se você desejar utilizar caracteres não-ASCII em qualquer lugar no arquivo de origem do probe (por exemplo, nos campos Rótulo ou Descrição ou no código Java de um fragmento), deverá escolher a codificação UTF-8, não ASCII.
Para alterar a codificação de um arquivo de origem existente do probe, clique com o botão direito do mouse no arquivo e selecione Abrir com -> Editor de Texto. Altere a codificação no cabeçalho XML para "UTF-8" e salve e feche o arquivo. Clique com o botão direito do mouse e escolha Abrir com -> Editor do Probe para editar o conteúdo.
O recurso Análise de Fuga não está disponível para programas do usuário executados no OS/400 iSeries(TM). Os dumps de heap Otimizados do Hyades gerados nessa plataforma estão incompletos e não é possível gerar dumps de heap em nenhum outro formato.
O desempenho das ferramentas de definição de perfis está diretamente relacionado à quantidade de dados coletados e à taxa na qual esses dados são transferidos para o workbench. À medida que a quantidade de dados coletados aumenta, um usuário perceberá um maior desempenho quanto ao tempo gasto para fazer a análise e quanto à memória disponível para executar diferentes tarefas. O usuário tem várias maneiras de aumentar o desempenho da definição de perfis.
- Oportunamente, você pode iniciar coletando a quantidade mínima de dados que considere suficiente para definir o perfil de uma determinada parte da funcionalidade. Isso pode ser feito configurando um Filtro mais eficiente na configuração de ativação da Definição de Perfis. No diálogo Executar->Perfil, selecione a guia Definição de Perfis.Selecione um conjunto de definição de perfis, seguido pelo botão Editar, seguido por Próximo > e você estará no diálogo Filtro. Utilize um Filtro para incluir apenas áreas de interesse. É sempre possível alterar o filtro para incluir dados diferentes ou adicionais em uma execução posterior.
- Se você não desejar definir o perfil do código de inicialização, tente desmarcar a caixa de opções "Iniciar automaticamente a monitoração no aplicativo ativado" na guia Definição de Perfis - Limites do diálogo Executar->Perfil. Isso deverá ajudar a reduzir o tempo que leva para ativar o programa que está sendo analisado e também impedir que a definição de perfil do código de inicialização. Observe que para iniciar a definição de perfis, você precisa clicar no botão da barra de ferramentas "Iniciar Monitoração" no Monitor de Definição de Perfis depois que o espaço de trabalho aparecer.
- Você pode tentar redirecionar a saída para um arquivo. Isso utilizará menos memória no RAD. O arquivo pode ser importado para o RAD posteriormente quando ele estiver sendo utilizado apenas para observação desse arquivo de definição de perfis, para que tenha mais memória livre para essa tarefa. Isso é feito por meio do diálogo Executar->Perfil, selecionando a guia Definição de Perfis, a subguia Destino e selecionando "Enviar dados de definição de perfis para um arquivo" antes de definir o perfil. Posteriormente, utilize o diálogo Arquivo->Importar e selecione o tipo Arquivo de Definição de Perfis. Observe que não é possível visualizar os dados durante a definição de perfis se essa opção estiver selecionada. Você deve primeiro Importar, em seguida, pode visualizá-lo. Há uma oportunidade de reduzir ainda mais a quantidade de memória, importando apenas uma parte do arquivo de definição de perfis no diálogo Importar. Talvez, importar partes diferentes e examiná-las independentemente ajudará.
- A definição de perfis pode resultar em código extra de memória, portanto poderia ser útil aumentar a memória virtual utilizada pelo RAD. Para iniciar o RAD com 512 MB de memória virtual (e 1 GB no máximo), inclua a linha a seguir em seu arquivo rationalsdp.ini: VMArgs=-Xms512m -Xmx1024m
- Se o problema for durante a coleta de dados no sistema de destino, você poderá tentar aumentar o tamanho dos buffers utilizados para enviar dados para o RAD. Inclua a linha a seguir no serviceconfig.xml e reinicie o agente. (Isso aumentará o tamanho do buffer para 256 MB). Em aplicativos de CPU muito intensiva, o tamanho do canal de dados também ajuda: <Agent configuration="default" name="Java Profiling Agent" dataChannelSize="256M" type="profiler"/>
Ao coletar os dumps binários de heap Otimizado do Hyades, se você enviar os dados para um arquivo trcxml, selecionando "Enviar dados de definição de perfis para um arquivo", observe o seguinte:
O Agent Controller deve estar em execução no host de implementação para que seja possível acessar os arquivos de heap salvos nele. Na primeira vez em que você executar Importar->Arquivo de Definição de Perfis no arquivo trcxml, a análise de fuga e a visualização de Gráficos de Referência do Objeto funcionam conforme o esperado.
Se você executar Importar->Arquivo de Definição de Perfis uma segunda vez, a importação funcionará, mas as tentativas de executar a Análise de Fuga ou visualizar um Gráfico de Referência do Objeto poderão falhar.Isso ocorre porque os arquivos de heap necessários podem não estar disponíveis no host de implementação.
Se encontrar esse problema, acesse os arquivos de heap a partir do projeto em que você importou o arquivo trcxml pela primeira vez. Os arquivos de heap estão em um diretório denominado "leakanalysisheapdir" sob o diretório do projeto.
Os dumps de heap do IBM(C)OS/390(SVC) são muito grandes. A expansão de grandes dumps de heap para visualizá-los na visualização Gráfico de Referência do Objeto pode demorar muito tempo. Como resultado, a operação poderá ser interrompida. O workbench ainda poderá estar expandindo ativamente o dump de heap mesmo quando o monitor de progresso parecer 100% parado.
Executar a ação "Capturar Dump de Heap" gera dumps de heap Otimizado do Hyades no host no qual o aplicativo de destino está implementado. O diretório de destino do dump de heap é controlado pela definição de LOCAL_AGENT_TEMP_DIR no arquivo de configuração do Agent Controller, serviceconfig.xml. Para obter informações sobre como localizar e modificar esse arquivo, consulte o tópico da Ajuda "Administrando o Agent Controller" sob "Detectando e Analisando Problemas de Tempo de Execução".
Se você receber qualquer uma das seguintes mensagens de erro, "Expandir Dump de Heap falhou na etapa: ...Lendo arquivo" ou "A Análise de Fuga falhou na etapa: Criando gráfico de referência do objeto de heap", verifique se o Agent Controller está em execução no host de implementação e tente novamente seu comando. O Agent Controller ajuda a copiar os arquivos do host de implementação para o diretório de projeto do workbench.
Se você tiver problemas durante a análise de fuga, o arquivo de log de Análise de Fuga poderá ser útil.
Durante a Análise de Fuga, informações de diagnóstico são gravadas no arquivo LeakAnalysis.log. O LeakAnalysis.log contém a saída das várias etapas executadas durante a análise de fuga e indicará o sucesso ou defeito da execução da análise de fuga.
O LeakAnalysis.log é gravado no projeto de definição de perfis associado aos dados do perfil. Por exemplo, no Windows, <meu_espaço_de_trabalho>\ProfileProject\LeakAnalysis.log.
Informações adicionais podem ser gravadas no arquivo de log, utilizando a propriedade de sistema RADLEAKREGIONDUMP. Inclua esta opção no rationalsdp.ini:
VMArgs=-DRADLEAKREGIONDUMP=1
O arquivo rationalsdp.ini está localizado no diretório de instalação do Rational Application Developer.
Se a análise de fuga falhar com a seguinte mensagem no arquivo LeakAnalysis.log, 'JVMDUMP006I Processando o Evento de Dump "não capturado", detalhe "java/lang/OutOfMemoryError"', você deverá aumentar o tamanho de heap do processo de análise de fuga.
Para fazer isso, defina o atributo de sistema RADLEAKJVMSIZE do Rational Application Developer. Esse atributo controla o tamanho de heap da JVM disponível durante a análise de fuga.
Para definir o RADLEAKJVMSIZE, inclua esta opção no arquivo rationalsdp.ini:
VMArgs=-DRADLEAKJVMSIZE=value
Em que value é o novo limite de tamanho de heap, como 1024 M. O valor padrão é 512 M. Você deve indicar se o tamanho de heap é expresso em megabytes ou gigabytes (M ou G).
O arquivo rationalsdp.ini está localizado no diretório de instalação do Rational Application Developer.
Ao utilizar a JVM clássica da IBM com o recurso de definição de perfis da Análise de Encadeamento, a Visualização de Encadeamento da perspectiva Definição de Perfis e Logs não exibe estados 'Aguardando trava' para todos os encadeamentos envolvidos em um conflito. Isso ocorre devido a informações ausentes nos dados coletados. Solução alternativa: Utilize a IBM J9 JVM, incluindo -Xj9 no campo Argumentos de VM da guia Argumentos do diálogo Perfil.
Os arquivos de origem do Probekit com caracteres não-ASCII em seus nomes não serão processados corretamente. Utilize apenas caracteres ASCII nos nomes de arquivos de origem do Probekit.
Não utilize a ação Probekit->Compilar que aparece no menu de contexto para arquivos *.probe. Em vez disso, converta o projeto que contém o arquivo *.probe em um projeto Probekit e utilize o mecanismo de construção padrão. (Para converter um projeto Java em um projeto Probekit, utilize Arquivo->Novo->Outro e, na seção Definição de Perfis e Logs, escolha Converter projetos Java em projetos Probekit).
Não utilize caracteres não-ASCII nos padrões para as especificações de "Destino" do Probekit. Os probes que contêm caracteres não-ASCII em padrões de Destino não serão processados corretamente.
Não utilize caracteres não-ASCII ao incluir padrões de método para "Esvaziar dados de cobertura quando..."
Se você digitar caracteres não-ASCII nos campos de pacote, classe ou método do diálogo Incluir do padrão de método, um erro de entrada inválida será exibido e não será possível descartar o diálogo.
Solução alternativa: Utilize um caractere curinga (asterisco) no lugar dos caracteres não-ASCII em seus padrões.
Nota: Isso foi corrigido na V6.0.0.1.
Um filtro EXCLUDE que comece com um caractere curinga (asterisco), como "*foo", faz com que as visualizações Estatísticas de Cobertura, Navegador de Cobertura e Origem Anotada não exibam dados. Solução alternativa: Não utilize esse filtro EXCLUDE.
Nota: Isso foi corrigido na V6.0.0.1.
O recurso Análise de Fuga não está disponível para programas do usuário em execução na IBM J9 JVM.
A IBM J9 JVM cria arquivos de heap com nomes semelhantes a heapdump.20041012.093936.2192.dmp quando você define a variável de ambiente IBM_HEAPDUMP e envia sinais "kill -3" para o processo Java em execução. Esses arquivos .dmp precisam ser pós-processados, executando j9extract e jdmpview e criar dumps de heap IBM.
O formato desses dumps de heap não é idêntico ao formato de dumps de heap gerados pela jvm clássica IBM.
Se você importar vários conjuntos de dumps de heap com o mesmo nome de monitor para um projeto existente, poderá perder dados se posteriormente salvar o projeto ou sair do workbench.
Para evitar isso, especifique uma combinação exclusiva de Projeto/Monitor para cada conjunto de heaps importados.
Se você iniciar um servidor WAS e conectar-se a ele, os tipos de definição de perfil Probekit e Cobertura no Nível de Linha não coletarão dados para nenhuma classe que já tenha sido carregada na JVM de destino. Solução alternativa: Para coletar dados dessas classes, reinicie o projeto que contém essas classes.
Durante a definição de perfis, todos os caracteres de byte duplo são mostrados como ???? na visualização do console.
Nota: Isso foi corrigido na V6.0.0.1.
A definição de perfis de applets com a IBM 1.4.2 SR1 JVM para análise de fuga resulta em um travamento da JVM. Para solucionar esse problema, especifique -Xj9 nos argumentos de VM para seu aplicativo.
Nota: Isso foi corrigido na V6.0.0.1.
A definição do código do idioma no host do workbench, no host de implementação remota e no aplicativo de destino devem ser todos iguais ao coletar dumps de heap Otimizado do Hyades.
Ao definir perfis para Análise de Encadeamento com o IBM JVM 1.4.1 ou anterior, a Visualização de Encadeamentos na perspectiva Definição de Perfis e Logs não mostra o proprietário do encadeamento de monitores de trava porque esses dados não são coletados. Solução alternativa: Faça upgrade para o IBM JRE 1.4.2.
Ao definir perfis remotamente no Solaris, um defeito no JRE Sun 1.4.x impede a definição de perfis para algumas combinações de recursos, especialmente com a definição de perfis de memória ou a análise de encadeamentos ativadas. O site da Sun descreve esse problema: http://developer.java.sun.com/developer/bugParade/bugs/4614956.html Solução alternativa: Utilize o JRE Sun 1.4.2_06 ou posterior.
Retornar para o Arquivo Leia-me Principal