Código em C é mais rápido que em C++?

Iniciado por AlexBR, 04 de Novembro de 2006, 18:37

tópico anterior - próximo tópico

AlexBR

Tenho um conjunto de rotinas em C que estão funcionando perfeitamente. Contudo, devido a quantidade de loops e a grande quantidade de dados, o algoritmo que essas rotinas implementam leva 2,5 minutos para ser executado. Agora, implementei o mesmo código em C++. Nossa! Achei que ficou bem mais lerdo. Não estou acreditando! Alguém aqui já tem uma opinião formada sobre qual código é mais rápido: C ou C++?

ppfb

C++ é mais alto nível do q C, um é orientado ao objeto e outro não...vc acha coisas feitas em C++, em C vc tem q implementar qse tudo...

não é q um seja "mais rápido" que o outro...

há coisas em que eles são semelhantes, mas realmente programas em C costumam rodar mais rapido do que em C++

C++ mais rápido que Java e Java mais rápido que python =)

AlexBR

Rapaz, tô impressionado com os meus resultados. Dá uma diferença muito grande. Passei o fim-de-semana otimizando o meu código. Então, consegui reduzir o tempo de execução do código em C de 2,5 minutos para apenas 30 segundos. Contudo, se eu implemento o mesmo código em C++... Quer dizer... Como as funções compartilham dados comuns, eu, simplesmente, transformo esses dados em membros de dados privados de uma classe e as funções que o utilizam em membros privados da mesma classe. Assim, achei que o código em C++ seria mais rápido porque quase não são passados parâmetros as funções, ou seja, os dados são membros privados da classe. Contudo, o código em C++ é executado em 80 segundos. Quase três vezes mais lerdo que o código em C.

A partir de hoje, vou procurar escrever a parte mais crítica do meu código em C mesmo. ;-)

_Luks

eu que sou matuto em programação de baixo nivel, nao to acostumado com a velocidade em c.
Eu fiz um algoritimo pra olimpiada brasileira de informatica, o algoritimo da piramide.
eu fiz em C e python. Eu coloquei a entrada 100000 em ambos codigos.
em c terminou de responder +- em 25 segundos
python demorou que so  :o :o :P

daskrs

Citação de: AlexBR online 04 de Novembro de 2006, 18:37
Tenho um conjunto de rotinas em C que estão funcionando perfeitamente. Contudo, devido a quantidade de loops e a grande quantidade de dados, o algoritmo que essas rotinas implementam leva 2,5 minutos para ser executado. Agora, implementei o mesmo código em C++. Nossa! Achei que ficou bem mais lerdo. Não estou acreditando! Alguém aqui já tem uma opinião formada sobre qual código é mais rápido: C ou C++?
O C é mais rápido que o C++.
Mas com os hardwares atuais a diferença é imperceptível.
mas realmente é estranho o teu código ser tão pesado.
Eu não sei o que tu fez ae, mas tenta dar um otimizada no código pra ver se melhora a performance.