• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skm

Foreach vs For

7 mensagens neste tópico

Ao responder a um topico aqui no P@P, deparei-me com um codigo com alguns foreach que manipulavam tipos não nativos.

O foreach é mais lento do que o for na maior parte dos casos. Pela minha experiencia o for é sempre mais rapido mesmo em collections.

Também li um pouco sobre este assunto Mais informação.

 

Por isso criei este topico para que possamos debater um pouco esta questão. O que acham ? devemos usar o foreach ou o for.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

apesar do for poder ser mais eficiente acho que vou continuar sempre a usar o foreach sempre que precisar dele, é mais rápido de escrever e a diferença de eficiência dificilmente se notará na maioria das aplicações...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o foreach tem menos performance... so deve ser utilizado em condições especiais

Eu nunca o uso... for é que é

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A diferença de performance é em 99% dos casos virtualmente inesistente, já a economia de código é uma coisa muito importante pois é um factor importante para a productividade de um programador.

foreach é das minhas keywords favoritas nas linguagens mais modernas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda gostava de saber qual a razão pela qual o foreach é menos eficiente... Sendo um caso particular do for, devia, no mínimo, ter a mesma eficiência.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O foreach pode ser um caso particular do for, mas a ussa implementação de baixo nivel é muito diferente.

O assembly gerado para o for e para o foreach são bastante diferentes. A perca de performance esta aí...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Uma das frases que mais sigo.

Qual é a importância de escolher um for, em detrimento de um foreach, quando nem se sabe se esse será um dos pontos que provoca a lentidão da aplicação? Vale a pena perder a legibilidade por uma optimização que dificilmente se fará sentir?

Convenhamos, os ciclos onde aplicamos o foreach não são o grosso da nossa execução, não são onde o código mais executado, se eventualmente a diferença de performance depender de um ciclo desse tipo, então isso é algo que se detecta depois da aplicação feita com testes e profilling, optimizar antes não traz vantagens.

Uso um ou outro consoante seja melhor para a escrita e leitura do código e não a pensar se será mais ou menos optimizado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora