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…