O que tem mais desempenho, um conjunto de if else, ou um bloco switch-case?
Eu ia responder, mas acabei me perguntando isso e nao consegui responder. Talvez vc consiga: mesmo que exista uma diferenca de performace, que diferenca isso faz na pratica?
Mas então se existir essa diferença de performance, quem leva a melhor?
a analise que eu vou fazer é meio empirica ,mas analisando que a clausula switch foi feita para evitar ifs aninhados ,ela deve ter maior desempenho que ifs
a coisa aqui é realTime mesmo ,quando eu fui postar meu reply ,só tinha a pergunta ,quando eu acabei de digitar ,ja era o 4º
Estamos num impasse. Eu quero que vc responda a minha pergunta, e vc quer que eu responda a sua pergunta. Entao, como eu sei a resposta da sua, e ela é o assunto desse tópico, eu estou em vantagem. Logo, eu posso me dar ao luxo de exigir que vc responda a minha primeiro
Se as variáveis que você for comparar forem do tipo String, não conseguirá escapar do Conjunto de ifs.
Não estou usando, vcs ainda não me disseram qual tem a melhor performance… desculpe arrogância
Olá
Ping, primeiro me diga o resultado do benchmark que você deve ter feito cronometrando seus 2 códigos. Depois me conte o resultado da aplicação do javap nos seus 2 códigos que quer comparar. Se souber estes dados e se conhecer os códigos que quer comparar poderei avaliar alguma coisa.
[]s
Luca
[quote=“Luca”]Olá
Ping, primeiro me diga o resultado do benchmark que você deve ter feito cronometrando seus 2 códigos. Depois me conte o resultado da aplicação do javap nos seus 2 códigos que quer comparar. Se souber estes dados e se conhecer os códigos que quer comparar poderei avaliar alguma coisa.
[]s
Luca[/quote]
:oops: Não fiz esses testes… eu só queria saber qual é melhor
Entao, pq nao fazer?
Eh definitivamente o melhor jeito de saber
Entao, pq nao fazer?
Eh definitivamente o melhor jeito de saber ;)[/quote]
Primeiramente não estou afim, hehe… também não tenho tempo e ainda teria que achar um benchmark (não sei direito como se escreve)
Bom, nesse caso nao tem muito o que a gente possa fazer pra te ajudar a nao ser te chamar de preguicoso, non?
Entao, pq nao fazer?
Eh definitivamente o melhor jeito de saber ;)[/quote]
Primeiramente não estou afim, hehe… também não tenho tempo e ainda teria que achar um benchmark (não sei direito como se escreve)[/quote]
Eh por que você acha que tem alguém afim de fazer por você? hehe
velho na teoria pelo menos switch - case é mais rapido…
porque o compilador otimiza o codigo… pelo que meu professor já me disse( ele tava falando de C++, mas acredito q java siga a msm filosofia ) que o compilador faz otimizações q o compilador qd testa… e ver por exemplo:
switch( 5 ) ele vai direto no case 5… tipo não fica testando até chegar no cinco… na verdade não sei se ele vai “diretamente no case 5”, mas acho q não acontece o pior caso tipo nos if else de sua opção ser a ultima… então tem de testar todos os casos…
não sei deu pra entender o que eu quis dizer, e não sei se eu falei besteira tbm… muheahuaeu =)
mas eu pelo menos… podendo usar… eu uso switch…
Voce pode apontar de onde vc tirou essa teoria? Pra mim, isso tem cheiro de fofoca-não-fundamentada-mas-que-parece-razoável-e-todo-mundo-fala-na-hora-do-almoço-pra-parecer-inteligente
No caso do Java, falso tambem. O javac nao faz nenhuma otimizacao - ele apenas cospe um .class a partir de um .java, ou seja, ele é mais um conversor do que um compilador. E, se vc olhar, o bytecode gerado por um switch e o bytecode gerado por um conjunto de ifs fazendo a mesma operação, vai descobrir se ele trata os dois de forma diferente ou não - daí a sugestão do Luca de usar javap.
Voce pode apontar de onde vc tirou essa teoria? Pra mim, isso tem cheiro de fofoca-não-fundamentada-mas-que-parece-razoável-e-todo-mundo-fala-na-hora-do-almoço-pra-parecer-inteligente
[/quote]
professor Theldo Algoritmos e tecnicas de programação 2 - PUC-mg.
essa é minha referencia…
pode até ser mentira… mas hora nenhum eu afirmei isso que eu to falando e nem vc sabe se é verdade então não cabe julgamentos desse tipo aqui…
[quote]
No caso do Java, falso tambem. O javac nao faz nenhuma otimizacao - ele apenas cospe um .class a partir de um .java, ou seja, ele é mais um conversor do que um compilador. E, se vc olhar, o bytecode gerado por um switch e o bytecode gerado por um conjunto de ifs fazendo a mesma operação, vai descobrir se ele trata os dois de forma diferente ou não - daí a sugestão do Luca de usar javap.[/quote]
não é interrese nenhum meu saber a resposta… apenas tava tentando ajudar o carinha lá… se e java é assim eu não sei… mas pelos tipo de programas que eu faço e tenho planos de fazer… a performance não é critica a tal ponto… só q no caso ele tava falando isso sobre as otimizações que o C++ faz…
java é outros 500… mas pelo menos pensei que ia ter uma melhora… porque se não é apenas um frescurada a mais… prefiro acreditar q nao seja isso…
entre sua resposta e a do Theldo… sou mais a dele…
sem +
[quote=“Ping”]
Primeiramente não estou afim, hehe… também não tenho tempo e ainda teria que achar um benchmark (não sei direito como se escreve)[/quote]
Se o problema é falta de vontade, contrata uma consultoria para tirar suas dúvidas então, eles estarão sempre a sua disposição
[quote=“Vegetto”]
Se o problema é falta de vontade, contrata uma consultoria para tirar suas dúvidas então, eles estarão sempre a sua disposição[/quote]
Acho que é isso que ele está tentando fazer, mas esqueceram de avisar que o pedido tem que ser feito via depósito identificado 8)