pessoal, esse metodo ta elevado a CPU a 80, 90 %, sendo que nas primeiras loopadas o numero é menor, masi vai aumentado rapidamente…
esse método é executado varias e varias vezes, uma vez para cada linha de um arquivo texto lido, sendo que essa linha é lida em outro lugar e jogada na variavel global linhaLida, do tipo String (é usado bufferedReader para ler o arquivo)
bem…a ideia aqui é gerar um arquivo .html contendo tabelas, com dados vindos de um outro arquivo… a variavel global do tipo String chamada html vai recebendo o código fonte do .html e depois é escrito tudo de uma vez só…
alguem ai tem alguma dica de como diminuir o uso da CPU??? (não me importo em fazer ele de modo que rode no dobro do tempo)
public void insereTabela(ArrayList<Entrada> layout)
            throws java.io.IOException, NullPointerException{
        try{   Thread.sleep(30);
        }catch(InterruptedException ie){}        
        
        html += "vou adicionando na var html o codigo fonte";
        
        try{   Thread.sleep(30);
        }catch(InterruptedException ie){} 
        
        html += "vou adicionando na var html o codigo fonte";
        
        
        try{   Thread.sleep(30);
        }catch(InterruptedException ie){} 
        
        for(int j = 0;j<layout.size();j++){
            try{   Thread.sleep(30);
            }catch(InterruptedException ie){} {}
            int tamanho = layout.get(j).getFim()-layout.get(j).getInicio()+1;
            html += "vou adicionando na var html o codigo fonte";
            try{   Thread.sleep(30);
            }catch(InterruptedException ie){} 
            
            if (tamanho > 32){
                String conteudo = "";
                int k = layout.get(j).getInicio()-1;
                do{
                    try{   Thread.sleep(30);
                    }catch(InterruptedException ie){} 
                    if (k+30<layout.get(j).getFim())
                        conteudo += linhaLida.substring(k, k+30)+"><br>";
                    else
                        conteudo += linhaLida.substring(k, layout.get(j).getFim())+"<br>";
                    k +=30;
                    
                }while(k<layout.get(j).getFim());
                html += "\t\t\t"+"><td align=\"center\" width=35%><pre>"+conteudo+"</pre></td>"+System.getProperty ("line.separator")+"\t\t</tr>";
                
                try{   Thread.sleep(30);
                }catch(InterruptedException ie){} 
                
            }else{
                try{   Thread.sleep(30);
                }catch(InterruptedException ie){} 
                String conteudo = linhaLida.substring(layout.get(j).getInicio()-1, layout.get(j).getFim());
                html += "\t\t\t"+"<td align=\"center\" width=35%><pre>"+conteudo+"</pre></td>"+System.getProperty ("line.separator")+"\t\t</tr>";
            }
        }
        html += "\t\t</table>"+System.getProperty ("line.separator");
        
        try{   Thread.sleep(30);
        }catch(InterruptedException ie){} 
    }
o metodo que chama esse metodo diversas vezes é esse:
[code]
public void geraSaidaCorpo()throws java.io.IOException{
int i = 1;
    while((linhaLida = remessaLida.readLine()) != null){
        System.out.println(i);
        html += System.getProperty ("line.separator")+System.getProperty ("line.separator");
        html +="\t\t<br><br><br><center><font size = 10><b>Linha "+i+"</b></font></center><br><br>"+System.getProperty ("line.separator");
        boolean acabou = false;
        int j, k;
        
        ArrayList<Entrada> e = null;
        for (j = 0;j< layoutsCorpo.size();j++){
            if (layoutsCorpo.get(j).get(0).getTipo().equals(linhaLida.substring(0, 1))){
                e = layoutsCorpo.get(j);
                break;
            }else{
                for (k=0;k<layoutsFim.size();k++){
                    if(layoutsFim.get(k).get(0).getTipo().equals(linhaLida.substring(0, 1))){
                        e = layoutsFim.get(k);
                        acabou = true;
                        break;
                    }
                }
            }    
        }
        
        if (e == null)
            javax.swing.JOptionPane.showMessageDialog(null, "não existe nenhum layout do tipo da linha "+i);
        else
            insereTabela(e);
        
        AmbienteGrafico.JanelaPrincipal.metodo();
        if (acabou)
            break;
        
        i++;
    }
    
    
}
[/code]>
pessoal… obrigadão pelas ajudas…