Qual a melhor performance para este for?

13 respostas
T
1
for (int i = 0; i < getjComboBox().getItemCount(); i++) {

}
2
int l = getjComboBox().getItemCount();
for (int i = 0; i < l; i++) {

}

qual dos 2 tem a melhor performance??? concidenrando que é getjComboBox() é um combobox ???

[color="darkred"]kkkkk tinha escrito errado ants... editei[/color]

13 Respostas

H

Qual é a diferença entre os dois ??? :confuso:

J
"TomazLavieri":
1
for (int i = 0; i < getjComboBox().getItemCount(); i++) {

}
2
int l = getjComboBox().getItemCount();
for (int i = 0; i < getjComboBox().getItemCount(); i++) {

}

qual dos 2 tem a melhor performance??? concidenrando que é getjComboBox() é um combobox ???

Acho que no 2 for vc queria fazer isso:

int l = getjComboBox().getItemCount();
for (int i = 0; i < l; i++) {

}

Ou é uma pegadinha?

T
UHAuhUHauhauhauha era isso ai JavaTeco... vou editar lá
"JavaTeco":
"TomazLavieri":
1
for (int i = 0; i < getjComboBox().getItemCount(); i++) {

}
2
int l = getjComboBox().getItemCount();
for (int i = 0; i < getjComboBox().getItemCount(); i++) {

}

qual dos 2 tem a melhor performance??? concidenrando que é getjComboBox() é um combobox ???

Acho que no 2 for vc queria fazer isso:

int l = getjComboBox().getItemCount();
for (int i = 0; i < l; i++) {

}

Ou é uma pegadinha?

J

Se o for foi como eu coloquei, então o 2 terá uma performence melhor, pois não terá que a cada laço fazer uma chamada aos métodos getjComboBox().getItemCount() (o que já acontece com o 1 for). É óbvio, que a medida que o número de itens do comboBox vai aumentando o desempenho do 1 for vai caindo, em relação ao 2 for… O quanto de performance será melhor eu não sei… mas com certeza o 2 for será mais rápido…

T

Bom… eu não sei… li num livro… que fazer referencias temporarias comiam performance…

bom… o método getItemCount() é simples
retorna um valor q ta no combox… esse método naum faz conta nenhuma =]

e tb naum sei… como funciona o for
c ele vai passar e testar cada vez… ou se vai gravar o valor e fazer o for…

axo q ele vai passar e fazer o teste cada vez… mas naum sei ao certo

abraços

J

Minha resposta foi baseada pelo conceito de chamada de métodos… pois quando um método é chamado é colocado na pilha de execução (é assim que a recursividade sabe para onde deve voltar), são passados os parâmetros (se necessário) e alocado um espaço de endereço de retorno… toda essa parada a cada vez que um (1) método é executado, é perdido um tempo e imagine isso dentro de um for… no entanto, … no segundo for é alocado um atributo, mas isso não vai causa problemas na performance, mas sim em espaço… mas que no caso é vai fazer diferença…

Para quem quiser saber mais sobre como é alocado atributos e chamada de métodos… é só ver o conceito de Heap…
:wink:

M

po gente, não consigo responder a nenhum post mais, só entro depois das 00h na semana, e ja ta tudo respondido, eaheaeha, mas vou falar aqui tb, tb penso como o javateco, quanto menos chamadas a funções melhor… qnt menos variaveis globais melhor, e quanto mais funções de chamada por valor puderem ser substituidas por chamadas a referencias melhor… essa é a velha pratica do C…! …onde os cara se matam pra deixar cada vez mais otimizado o codigo em relação a velocidade…

T

bom… vou escrever o que eu li em um artigo … da SUN…

tinha lá assim

Melhor vc escrever 10 linhas de código…a criar uma varivel temporaria…
ressalva que axo q isso só vale pra objetos…

bom mas era o q diz lá… nos testes de performance… infelizmente nào tenho + o link… mas dizia isso… q criar objetos temporarios é pior q xamar métodos

J

“TomazLavieri”:
bom… vou escrever o que eu li em um artigo … da SUN…

tinha lá assim

Melhor vc escrever 10 linhas de código…a criar uma varivel temporaria…
ressalva que axo q isso só vale pra objetos…

bom mas era o q diz lá… nos testes de performance… infelizmente nào tenho + o link… mas dizia isso… q criar objetos temporarios é pior q xamar métodos

Puts… Vc tem o link de onde fala “Melhor vc escrever 10 linhas de código…a criar uma varivel temporaria…”? Porque isto é contraditório com o que é estudado e com os livros sobre o assunto…

T

vou procurar… mas axo dificil encontrar… o link era de quando eu tinha acabado de entrar aqui no forum… era um link q tava na página principal… uma noticia… mas vou procurar

F

escrever 10 linhas de codigo ao invez de criar uma variavel temporaria gasta menos memoria e portanto eh mais rapido, portanto o codigo fica mais dificil de se compreender, por isso eh uma boa pratica de programacao criar a variavel…

T

axo que me expressei mau… o q eu tentei dizer é q xamar método é mais rápido que criar a variavel tempóraria… mesmo que isso tenha 10 linhas de código…

bom eu axo mais bonito quando não se criar a variavel… c eu poder fazer algo assim

((Cast)vetor.get(index)).getMetodo();

eu prefiro muito mais a criar

Cast temp = (Cast)vetor.get(index); temp.getMetodo();

axo o 1º geito mais eficiente

J

Oi

Concordo com o Tomaz, criar variáveis auxiliares e temporárias devem ser a última alternativa…

T+

Criado 25 de março de 2004
Ultima resposta 26 de mar. de 2004
Respostas 13
Participantes 6