<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Estouro na memoria do Heap"]]></title>
		<link>http://www.guj.com.br/posts/list/5.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Estouro na memoria do Heap"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Estouro na memoria do Heap</title>
				<description><![CDATA[ Eu ja postei uma vez com esse problema e codigo mas foi a muito tempo, e para naos er coveiro resolvi postar denovo e como meu codigo com algumas diferenças<br /> <br /> Bom meu problema é o seguinte, a memoria do heap esta estouranda depois do meu programa rodar por umas 1 hora e meia. Como é uma mesma rotina que ele esta rodando sempre sem variar o numero de dados utilizados, suponho eu que a esta vazando memoria. Mas eu nao tenho ideia onde... Antes de  postar o codigo vou explicar mais ou menos como ele funciona. É um programa para armazenar dados duranto o dia todo do WTR da BMF. Quando eu inicio o programa abre uma janela com 3 botoes, conecta, ON e OFF. Quando voce aperta o botao Conecta ele abre 2 IEs navega ate os respectivos sites e loga nos mesmos. Quando voce aperta ON ele inicia a rotina, e OFF desliga a rotina. A rotina esta rodando um um Thread separado para poder ser ligado e desligado inumeras vezes.  Ok agora a rotina funciona mais ou menos assim. Ele da um refresh nos 2 IEs e armazena os dados coletados de tabelas em 2 matrizes, sendo que esses dados sao armazenados de um modo diferente que mostrado no site. Depois ele preenche uma linha de um txt chamado Ofertas.txt com o horario, ultimo negocio, e ofertas de compra e venda do ativo em questao. E armazena em outro txt chamado nlinhas.txt o numero atual de linhas do txt Ofertas.txt (esses txt serao utilizados em um programa C mais para frente mas isso nao vem ao caso). Depois disso ele reinicia a rotina. Essa rotina dura em torno de 10 segundos. O meu codigo é o seguinte:<br /> <br /> [code]/*<br />  * To change this template, choose Tools | Templates<br />  * and open the template in the editor.<br />  */<br /> <br /> /*<br />  * MMMInterface.java<br />  *<br />  * Created on Jan 4, 2009, 12:05:15 PM<br />  */<br /> package mmk.mmminterface;<br /> <br /> import java.io.*;<br /> import java.util.*;<br /> import java.text.*;<br /> import net.sf.jiffie.*;<br /> <br /> public class MMMInterface extends javax.swing.JFrame {<br /> <br />     /** Creates new form MMMInterface */<br />     public MMMInterface() {<br />         initComponents();<br />         new Conecta().start();<br /> <br /> <br />     }<br /> <br />     /** This method is called from within the constructor to<br />      * initialize the form.<br />      * WARNING: Do NOT modify this code. The content of this method is<br />      * always regenerated by the Form Editor.<br />      */<br />     @SuppressWarnings("unchecked")<br />     // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;                          <br />     private void initComponents() {<br /> <br />         jPasswordField1 = new javax.swing.JPasswordField();<br />         jTextField1 = new javax.swing.JTextField();<br />         jLabel1 = new javax.swing.JLabel();<br />         jLabel2 = new javax.swing.JLabel();<br />         jButton1 = new javax.swing.JButton();<br />         jButton2 = new javax.swing.JButton();<br />         jButton3 = new javax.swing.JButton();<br />         jTextField2 = new javax.swing.JTextField();<br />         jLabel3 = new javax.swing.JLabel();<br />         jTextField3 = new javax.swing.JTextField();<br /> <br />         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);<br />         setTitle("Monkey Money Maker 1.0");<br />         setAlwaysOnTop(true);<br />         setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));<br /> <br />         jLabel1.setText("LOGIN");<br /> <br />         jLabel2.setText("SENHA");<br /> <br />         jButton1.setText("CONECTA");<br />         jButton1.addMouseListener(new java.awt.event.MouseAdapter() {<br />             public void mouseClicked(java.awt.event.MouseEvent evt) {<br />                 jButton1MouseClicked(evt);<br />             }<br />         });<br /> <br />         jButton2.setText("OFF");<br />         jButton2.addMouseListener(new java.awt.event.MouseAdapter() {<br />             public void mouseClicked(java.awt.event.MouseEvent evt) {<br />                 jButton2MouseClicked(evt);<br />             }<br />         });<br /> <br />         jButton3.setText("ON");<br />         jButton3.addMouseListener(new java.awt.event.MouseAdapter() {<br />             public void mouseClicked(java.awt.event.MouseEvent evt) {<br />                 jButton3MouseClicked(evt);<br />             }<br />         });<br /> <br />         jTextField2.setEditable(false);<br />         jTextField2.setFont(new java.awt.Font("Tahoma", 0, 28));<br />         jTextField2.setHorizontalAlignment(javax.swing.JTextField.CENTER);<br />         jTextField2.setText("0");<br /> <br />         jLabel3.setFont(new java.awt.Font("Tahoma", 0, 36)); // NOI18N<br />         jLabel3.setForeground(new java.awt.Color(102, 102, 102));<br />         jLabel3.setText("P&L");<br /> <br />         jTextField3.setBackground(new java.awt.Color(255, 0, 0));<br />         jTextField3.setEditable(false);<br />         jTextField3.setFont(new java.awt.Font("Tahoma", 1, 18));<br />         jTextField3.setHorizontalAlignment(javax.swing.JTextField.CENTER);<br />         jTextField3.setText("OFF");<br /> <br />         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());<br />         getContentPane().setLayout(layout);<br />         layout.setHorizontalGroup(<br />             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()<br />                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />                     .addGroup(layout.createSequentialGroup()<br />                         .addGap(28, 28, 28)<br />                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br />                             .addComponent(jLabel1)<br />                             .addComponent(jLabel2)))<br />                     .addGroup(layout.createSequentialGroup()<br />                         .addContainerGap()<br />                         .addComponent(jLabel3)))<br />                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br />                     .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)<br />                     .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)<br />                         .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)<br />                         .addComponent(jPasswordField1)))<br />                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)<br />                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />                     .addComponent(jTextField3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)<br />                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)<br />                         .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)<br />                         .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)<br />                         .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))<br />                 .addGap(30, 30, 30))<br />         );<br />         layout.setVerticalGroup(<br />             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />             .addGroup(layout.createSequentialGroup()<br />                 .addContainerGap()<br />                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br />                     .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 57, Short.MAX_VALUE)<br />                     .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 57, Short.MAX_VALUE)<br />                     .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 57, Short.MAX_VALUE))<br />                 .addGap(3, 3, 3)<br />                 .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)<br />                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)<br />                     .addGroup(layout.createSequentialGroup()<br />                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)<br />                             .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)<br />                             .addComponent(jLabel1))<br />                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)<br />                             .addComponent(jLabel2)<br />                             .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))<br />                         .addGap(22, 22, 22))<br />                     .addGroup(layout.createSequentialGroup()<br />                         .addComponent(jButton3)<br />                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)<br />                         .addComponent(jButton2)<br />                         .addContainerGap())))<br />         );<br /> <br />         pack();<br />     }// &lt;/editor-fold&gt;                        <br /> <br />     private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      <br />         conectado = true;<br />     }                                     <br /> <br />     private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {                                      <br />         ligado = true;<br />         jTextField3.setText("ON");<br />         jTextField3.setBackground(new java.awt.Color(0, 163, 0));<br />     }                                     <br /> <br />     private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      <br />         ligado = false;<br />         jTextField3.setText("OFF");<br />         jTextField3.setBackground(new java.awt.Color(255, 0, 0));<br />     }                                     <br /> <br />     class Conecta extends Thread {<br /> <br />        <br />         public void run() {<br /> <br />             try {<br />                 while (!conectado) {<br />                 }<br /> <br />                 if (conectado) {<br /> <br />                     //Declaraçao das Matrizes das Ofertas<br />                     int mofc[][];<br />                     mofc = new int[6][4];<br />                     int mofv[][];<br />                     mofv = new int[6][4];<br />                     int cont1;<br />                     int cont2;<br />                     //Declaracao dos IEs<br />                     InternetExplorer k = new InternetExplorer();<br />                     InternetExplorer k2 = new InternetExplorer();<br />                     //Inicia os IEs<br />                     k.setVisible(true);<br />                     k2.setVisible(true);<br />                     //Instancia a Data<br />                     Date time = new Date();<br />                     <br />                     //Instancia as variaveis para armazenar os objetos a serem utilizados do IE<br />                     IHTMLFrameElement frame;<br />                     IHTMLDocument2 frameDocument;<br />                     ElementList tab2;<br />                     IHTMLTable tabe;<br />                     ElementList tab;<br />                     IHTMLTable ofc;<br />                     IHTMLTable ofv;<br />                     <br />                     //Buffer para ler o numero de linhas do txt nlinhas<br />                     BufferedReader in;<br />                     String snl;<br />                     <br />                     PrintStream escrever1;<br /> <br />                     int nl;<br />                     <br />                     //Faz os IEs navegarem para os seus respectivos sites<br />                     k.navigate("https://wtr.bmf.com.br/Autenticacao/SMLoginIBroker.fcc?TYPE=33554433&REALMOID=06-0ea14422-cef7-4d33-b467-0734805081ef&GUID=&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=$SM$Rlq1KK%2bTjmanrmkO%2bWkztYGagAIeD0fRFWN4cb08AryeECePlRWNZcA%2b3YdN0qOL&TARGET=$SM$HTTPS%3a%2f%2fwtr%2ebmf%2ecom%2ebr%2fnegociacao%2facompanhamento_de_mercado%2fcotacoes%2fcotacaoAllBook%2easp%3fempresa%3dCD%26instrumento%3dwinm09");<br />                     k.waitWhileBusy();<br />                     IHTMLDocument2 document = k.getDocument(true);<br /> <br />                     k2.navigate("https://wtr.bmf.com.br/Autenticacao/SMLoginIBroker.fcc?TYPE=33554433&REALMOID=06-0ea14422-cef7-4d33-b467-0734805081ef&GUID=&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=$SM$Rlq1KK%2bTjmanrmkO%2bWkztYGagAIeD0fRFWN4cb08AryeECePlRWNZcA%2b3YdN0qOL&TARGET=$SM$HTTPS%3a%2f%2fwtr%2ebmf%2ecom%2ebr%2fnegociacao%2facompanhamento_de_mercado%2fcotacoes%2easp%3fempresa%3dCD%26ativo%3dwinm09");<br />                     k2.waitWhileBusy();<br />                     IHTMLDocument2 document2 = k2.getDocument(true);<br />                     <br />                     //Loga nos 2 IEs<br />                     IHTMLInputElement input = (IHTMLInputElement) document.getElementByName("USER");<br />                     input.setValue("MEU LOGIN");<br />                     k.waitWhileBusy();<br />                     IHTMLInputElement input2 = (IHTMLInputElement) document.getElementByName("PASSWORD");<br />                     input2.setValue("MINHA SENHA");<br />                     k.waitWhileBusy();<br />                     IHTMLFormElement form = (IHTMLFormElement) document.getElementByName("LoginSM");<br />                     form.submit(true);<br />                     k.waitWhileBusy();<br /> <br />                     IHTMLInputElement input3 = (IHTMLInputElement) document2.getElementByName("USER");<br />                     input3.setValue("MEU LOGIN");<br />                     k2.waitWhileBusy();<br />                     IHTMLInputElement input4 = (IHTMLInputElement) document2.getElementByName("PASSWORD");<br />                     input4.setValue("MINHA SENHA");<br />                     k2.waitWhileBusy();<br />                     IHTMLFormElement form2 = (IHTMLFormElement) document2.getElementByName("LoginSM");<br />                     form2.submit(true);<br />                     k2.waitWhileBusy();<br />                     <br />                     //Instancia os arquivos a serem utilizados<br />                     File ofertas = new File("C://Ofertas.txt");<br />                     PrintStream escrever = new PrintStream(new FileOutputStream(ofertas, true));<br />                     File nlinhas = new File("C://nlinhas.txt");<br /> <br />                     int cont = 0;<br /> <br />                     String time2;<br />                     <br />                     //Rotina que deve rodar por 8 horas<br />                     while (true) {<br /> <br />                         if (ligado) {<br />                             <br />                             //Da refresh nos 2 IEs e espera ate ambos terminarem<br />                             k.refresh(true);<br />                             k2.refresh(true);<br />                             k2.waitWhileBusy();<br />                             k.waitWhileBusy();<br />                             //Armazena o frame a ser utilizado<br />                             frame = (IHTMLFrameElement) document2.getElementById("fmeLeft");<br />                             frameDocument = frame.getDocument(true);<br />                             //Armazena as tabelas a serem utilizadas<br />                             tab2 = frameDocument.getElementListByTag("table");<br />                             tabe = (IHTMLTable) tab2.get(0);<br />                             tab = document.getElementListByTag("table");<br /> <br />                             int i = 2;<br /> <br />                             ofc = (IHTMLTable) tab.get(5);<br />                             ofv = (IHTMLTable) tab.get(8);<br /> <br />                             k.waitWhileBusy();<br />                             //Abre o Buffer in<br />                             in = new BufferedReader(new FileReader(nlinhas));                         <br />                             snl = in.readLine();<br />                             //Fecha o Buffer in<br />                             in.close();<br />                             nl = Integer.parseInt(snl);<br />                             time = new Date();<br />                             //Formata o horario no formato necessario<br />                             time2 = new SimpleDateFormat("HH mm ss").format(time);<br /> <br />                             cont2 = 2;<br />                             cont1 = 0;<br />                             <br />                             //Armazena as ofertas de compra na matriz alocada por preço e nao mais por oferta<br />                             while (cont1 &lt;= 4) {<br />                                 mofc[cont1][0] = 1;<br />                                 mofc[cont1][1] = Integer.parseInt(ofc.getRow(cont2 + cont1).getCell(3).getInnerText());<br />                                 mofc[cont1][2] = Integer.parseInt(ofc.getRow(cont2 + cont1).getCell(4).getInnerText().replace(".", ""));<br />                                 while (cont2 + cont1 &lt;= ofc.getRowCount() - 1 && Integer.parseInt(ofc.getRow(cont2 + cont1).getCell(4).getInnerText().replace(".", "")) == Integer.parseInt(ofc.getRow(cont2 + cont1 + 1).getCell(4).getInnerText().replace(".", ""))) {<br />                                     cont2 = cont2 + 1;<br />                                     mofc[cont1][0] = mofc[cont1][0] + 1;<br />                                     mofc[cont1][1] = mofc[cont1][1] + Integer.parseInt(ofc.getRow(cont2 + cont1).getCell(3).getInnerText());<br />                                 }<br />                                 cont1 = cont1 + 1;<br />                             }<br />                             cont2 = 2;<br />                             cont1 = 0;<br />                             <br />                             //Armazena as ofertas de venda na matriz alocada por preço e nao mais por oferta<br />                             while (cont1 &lt;= 4) {<br />                                 mofv[cont1][0] = 1;<br />                                 mofv[cont1][1] = Integer.parseInt(ofv.getRow(cont2 + cont1).getCell(3).getInnerText());<br />                                 mofv[cont1][2] = Integer.parseInt(ofv.getRow(cont2 + cont1).getCell(4).getInnerText().replace(".", ""));<br />                                 while (cont2 &lt;= ofv.getRowCount() - 1 && Integer.parseInt(ofv.getRow(cont2 + cont1).getCell(4).getInnerText().replace(".", "")) == Integer.parseInt(ofv.getRow(cont2 + cont1 + 1).getCell(4).getInnerText().replace(".", ""))) {<br />                                     cont2 = cont2 + 1;<br />                                     mofv[cont1][0] = mofv[cont1][0] + 1;<br />                                     mofv[cont1][1] = mofv[cont1][1] + Integer.parseInt(ofv.getRow(cont2 + cont1).getCell(3).getInnerText());<br />                                 }<br />                                 cont1 = cont1 + 1;<br />                             }<br /> <br /> <br /> <br />                             //Preenche a linha do txt Ofertas<br />                             escrever.print(time2 + " ");<br />                             escrever.print(tabe.getRow(0).getCell(0).getInnerText().substring(47, 53) + " ");<br />                             i = 0;<br />                             while (i &lt;= 4) {<br /> <br />                                 //escrever.print(ofc.getRow(i).getCell(3).getInnerText() + " " + ofc.getRow(i).getCell(4).getInnerText() + " ");<br />                                 escrever.print(mofc[i][0] + " " + mofc[i][1] + " " + mofc[i][2] + " ");<br /> <br />                                 i = i + 1;<br />                             }<br />                             i = 0;<br />                             while (i &lt;= 3) {<br /> <br />                                 //escrever.print(ofv.getRow(i).getCell(3).getInnerText() + " " + ofv.getRow(i).getCell(4).getInnerText() + " ");<br />                                 escrever.print(mofv[i][0] + " " + mofv[i][1] + " " + mofv[i][2] + " ");<br /> <br />                                 i = i + 1;<br /> <br />                             }<br /> <br /> <br />                             // escrever.println(ofv.getRow(21).getCell(3).getInnerText() + " " + ofv.getRow(21).getCell(4).getInnerText());<br />                             escrever.println(mofv[4][0] + " " + mofv[4][1] + " " + mofv[4][2] + " ");<br /> <br />                             nl = nl + 1;<br />                             //Abre o printstream escrever1<br />                             escrever1 = new PrintStream(new FileOutputStream(nlinhas, false));<br />                             <br />                             //Escreve no txt nlinhas o numero de linhas atual<br />                             escrever1.println(nl);<br />                             <br />                             //Fecha o printsream escrever1<br />                             escrever1.close();<br />                             cont = cont + 1;<br /> <br />                         //this.sleep(3000);<br />                         }<br />                     }<br /> <br />                 }<br />             } catch (Exception e) {<br />                 e.printStackTrace();<br />             }<br /> <br />         }<br />     }<br /> <br />     public static void main(String args[]) {<br />         java.awt.EventQueue.invokeLater(new Runnable() {<br /> <br />             public void run() {<br />                 MMMInterface mmm = new MMMInterface();<br />                 mmm.setIconImage(mmm.getToolkit().getImage("C://monkey.gif"));<br />                 mmm.setVisible(true);<br /> <br />             }<br />         });<br />     }<br />     public static boolean ligado = false;<br />     public static boolean conectado = false;<br /> <br />     // Variables declaration - do not modify                     <br />     private javax.swing.JButton jButton1;<br />     private javax.swing.JButton jButton2;<br />     private javax.swing.JButton jButton3;<br />     private javax.swing.JLabel jLabel1;<br />     private javax.swing.JLabel jLabel2;<br />     private javax.swing.JLabel jLabel3;<br />     private javax.swing.JPasswordField jPasswordField1;<br />     private javax.swing.JTextField jTextField1;<br />     private javax.swing.JTextField jTextField2;<br />     private javax.swing.JTextField jTextField3;<br />     // End of variables declaration                   <br /> }<br /> [/code]<br /> <br /> <br /> PS: Esse programa nao sera destribuido ou vendido, sera apenas para uso proprio.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/677617/estouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/677617/estouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Thu, 30 Apr 2009 07:30:13]]> GMT</pubDate>
				<author><![CDATA[ Sink0]]></author>
			</item>
			<item>
				<title>Re:Estouro na memoria do Heap</title>
				<description><![CDATA[ Use um profiler para descobrir onde está o problma.<br /> <br /> Também é uma boa para rodar o programa com a seguinte opção na VM:<br /> -XX:+HeapDumpOnOutOfMemoryError<br /> <br /> Isso fará que o Java gere um arquivo de dump da memória (.dmp), antes de sua aplicação falhar pelo OutOfMemoryError. Esse dump vc pode abrir no profiler do Netbeans, e ver exatamente onde o problema está.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/677697/reestouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/677697/reestouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Thu, 30 Apr 2009 08:55:26]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Estouro na memoria do Heap</title>
				<description><![CDATA[ Bom eu nao gerei a dump, mas pelo profiler do netbeans eu pude ver que o que ta vazando memeoria seriam  o java.lang.ref.Finalizer, o java.util.HashMap$Entry e o java.util.HashMap$Entry[]. Os dois primeiros estao em disparado usando mais bytes.... Alguma ideia dado essa informacao?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/677811/reestouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/677811/reestouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Thu, 30 Apr 2009 11:21:03]]> GMT</pubDate>
				<author><![CDATA[ Sink0]]></author>
			</item>
			<item>
				<title>Re:Estouro na memoria do Heap</title>
				<description><![CDATA[ Ligue a opção de rastrear as alocações no Stack. Uma boa também é abrir as instâncias do entry e ver que objeto está associado a elas. Normalmente, no caso de leaks, vc verá repetições centenas de vezes da mesma classe.<br /> <br /> Por fim, procure também o local onde esses mapas são usados no seu código, em que rotina são chamados, etc.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/677826/reestouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/677826/reestouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Thu, 30 Apr 2009 11:45:27]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Estouro na memoria do Heap</title>
				<description><![CDATA[ Eu nao sei fazer nenhuma das duas coisas haha.. alguma indicaçao de como fazer?<br /> <br /> vlew!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/678079/reestouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/678079/reestouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Thu, 30 Apr 2009 17:02:08]]> GMT</pubDate>
				<author><![CDATA[ Sink0]]></author>
			</item>
			<item>
				<title>Re:Estouro na memoria do Heap</title>
				<description><![CDATA[ Entao .. eu nao consegui essa opcao de rastrar as alocacoes do stack.. onde ela fica no NetBeans? Como eu vejo as isntancias do entry?<br /> <br /> Esses mapas devem tar sendo utilizados numa API que eu uso chamada juffie.. que usa uma outra chamada Jacob que meche com JNI. Eu usso isso para pegar informacoes de um IE...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/125359/680441/reestouro-na-memoria-do-heap
</guid>
				<link>http://www.guj.com.br/prepost/125359/680441/reestouro-na-memoria-do-heap
</link>
				<pubDate><![CDATA[Wed, 6 May 2009 18:10:41]]> GMT</pubDate>
				<author><![CDATA[ Sink0]]></author>
			</item>
	</channel>
</rss>
