optimizare cod
-
- Membru
- Posts: 208
- Joined: 24 May 2008, 09:41
optimizare cod
Buna ziua!
Am un cod scris in Visual C++ 2010.
Cand l-am rulat in Dev C++, programul a durat 1.7 sec.
Cand l-am rulat in Visual C++ 2010 a dura 7.5 sec.
Programul foloseste temaplate, si rezolva niste probleme de structuri de date.
Ce setari pot face ca, codul sa ruleze mai rapid decat daca e compilat cu Dev C++?
Am un cod scris in Visual C++ 2010.
Cand l-am rulat in Dev C++, programul a durat 1.7 sec.
Cand l-am rulat in Visual C++ 2010 a dura 7.5 sec.
Programul foloseste temaplate, si rezolva niste probleme de structuri de date.
Ce setari pot face ca, codul sa ruleze mai rapid decat daca e compilat cu Dev C++?
- Ovidiu Cucu
- Fondator
- Posts: 3778
- Joined: 11 Jul 2007, 16:10
- Judet: Iaşi
- Location: Iasi
- Contact:
Re: optimizare cod
Ce configuratie build ai rulat? Debug sau release?
Uita-te un pic pe la /O-uri: http://msdn.microsoft.com/en-US/library ... S.80).aspx
Uita-te un pic pe la /O-uri: http://msdn.microsoft.com/en-US/library ... S.80).aspx
Ovidiu
Follow http://twitter.com/#!/ovidiucucu
Weblog: http://codexpert.ro/blog/author/ovidiu-cucu/
Visit FAQ, Tips & Tricks
Follow http://twitter.com/#!/ovidiucucu
Weblog: http://codexpert.ro/blog/author/ovidiu-cucu/
Visit FAQ, Tips & Tricks
Re: optimizare cod
Eu as fi curios de doua lucruri: setarile folosite pt VS2010 (acele switch-uri la care zicea Ovidiu sa te uiti) si respectiv daca ai setat alt compilator pt devc++, pt ca mi se pare ca mi se pare ciudat ca un compilator de ~5 ani (fie el si MingW portare GCC) sa fie de ~4,5 ori mai rapid decat VC++ 10. Peste tot, unde am vazut comparatii, cele doua sunt in top si nu castiga niciunul un test atat de "detasat".
- Ovidiu Cucu
- Fondator
- Posts: 3778
- Joined: 11 Jul 2007, 16:10
- Judet: Iaşi
- Location: Iasi
- Contact:
Re: optimizare cod
Pare o noua discutie din seria "xxxc++ rocks, yyyc++ sucks..." pornind de la un benchmark de pripas. 

Ovidiu
Follow http://twitter.com/#!/ovidiucucu
Weblog: http://codexpert.ro/blog/author/ovidiu-cucu/
Visit FAQ, Tips & Tricks
Follow http://twitter.com/#!/ovidiucucu
Weblog: http://codexpert.ro/blog/author/ovidiu-cucu/
Visit FAQ, Tips & Tricks
- Silviu Ardelean
- Senior
- Posts: 1175
- Joined: 12 Jul 2007, 09:22
- Judet: Timiş
- Location: Timisoara
- Contact:
Re: optimizare cod
Diferenta mi se pare enorma. Viorel, nu cumva la devC++ aveai release build iar la VC++ debug build? 

-
- Membru++
- Posts: 919
- Joined: 23 Jul 2007, 11:32
Re: optimizare cod
Sau cum ai masurat ? Lansand aplicatiile din IDE ? Pe un sistem slab VS ocupa ceva resurse comparativ cu jucarioara cealalta.
- cristianamarie
- Membru++
- Posts: 480
- Joined: 12 Mar 2009, 18:47
- Judet: Iaşi
- Location: Iasi
Re: optimizare cod
Da-i din consola cu VS in release (devenv ...) si masoara. Nu cred ca o sa mai iasa 7 secunde.
Nuclear launch detected
-
- Membru
- Posts: 208
- Joined: 24 May 2008, 09:41
Re: optimizare cod
Multumesc de raspunsuri.
Am rulat codul in Dev C++ in modul debug si a merg asemanator 7-8 secunde.
Ceea ce nu inteleg este ca modul release de la Visual C++ 2005 este mai lent decat cel de la Dev C++.
Daca aleg Profile Guide Optimization in Visual C++ 2005 timpul de executie scade sub 2 secunde si e mai bun decat in Dev C++.
Pe Vista Visual C++ are un comportament asemanator, daca nu chiar mai rau decat in Windows XP in modurile debug si release.
Codul foloseste template-uri foarte mult .
In Dev C++ nu pot compila urmatorul cod:
Dar urmatorul cod se compileaza:
Ambele coduri merg in Visual C++ 2005. Ce optiune am la Dev C++?
Am rulat codul in Dev C++ in modul debug si a merg asemanator 7-8 secunde.
Ceea ce nu inteleg este ca modul release de la Visual C++ 2005 este mai lent decat cel de la Dev C++.
Daca aleg Profile Guide Optimization in Visual C++ 2005 timpul de executie scade sub 2 secunde si e mai bun decat in Dev C++.
Pe Vista Visual C++ are un comportament asemanator, daca nu chiar mai rau decat in Windows XP in modurile debug si release.
Codul foloseste template-uri foarte mult .
In Dev C++ nu pot compila urmatorul cod:
Code: Select all
#include<iostream>
int arrNum[];
int main()
{
return 0;
}
int arrNum[3]={1,2,3};
Dar urmatorul cod se compileaza:
Code: Select all
#include<iostream>
int arrNum[3]={1,2,3};
int main()
{
return 0;
}
Re: optimizare cod
Pune un mic demo al codului, sau descrie problema putin mai detaliat, pe mine chiar m-ai facut curios 
Iar "problema" cu initializarea, mie unul nu mi se pare a fi o problema, adica e considerat "good coding practice" sa initializezi variabilele cand le declari.

Iar "problema" cu initializarea, mie unul nu mi se pare a fi o problema, adica e considerat "good coding practice" sa initializezi variabilele cand le declari.
-
- Membru
- Posts: 208
- Joined: 24 May 2008, 09:41
Re: optimizare cod
Nu pot pune codul, dar exista configuratiile release si debug.
Daca configuratia e setata pe release si apas butonul "->", acesta inseamna Start with debugging.
Exista Debug, Release cu Debug si Release fara Debug?
Daca configuratia e setata pe release si apas butonul "->", acesta inseamna Start with debugging.
Exista Debug, Release cu Debug si Release fara Debug?
- cristianamarie
- Membru++
- Posts: 480
- Joined: 12 Mar 2009, 18:47
- Judet: Iaşi
- Location: Iasi
Re: optimizare cod
Poti face debug si pe Debug si pe Release. Diferenta e ca _DEBUG adauga multe informatii care in release sint stripped. Poti avea .dll si .pdb si faci debug si pe un dll release.viorel2005 wrote:Nu pot pune codul, dar exista configuratiile release si debug.
Daca configuratia e setata pe release si apas butonul "->", acesta inseamna Start with debugging.
Exista Debug, Release cu Debug si Release fara Debug?
Nuclear launch detected
Re: optimizare cod
Ma gandeam eu ca e posibil sa nu poti posta codul, dar poti sa ne dai mai multe detalii cum sa incercam sa reproducem problema (sau sa faci un mic "demo" doar cu partea "dubioasa"), sa testam si noi, pt ca daca release build-ul din VC10, merge de 4,5 ori mai incet decat cel din devC++ (cu compiler din anul ~2005), atunci e cu siguranta un bug (si nu ar strica sa stie si MS de el), iar daca la noi merge repede inseamna ca instalarea ta de VS e "corupta", sau cineva a facut setari "dubioase".viorel2005 wrote:Nu pot pune codul, dar exista configuratiile release si debug.
Daca configuratia e setata pe release si apas butonul "->", acesta inseamna Start with debugging.
Exista Debug, Release cu Debug si Release fara Debug?
A mai fost spus mai sus, ai incercat sa rulezi pur si simplu aplicatia, sa nu o pornesti din VS?
- Silviu Ardelean
- Senior
- Posts: 1175
- Joined: 12 Jul 2007, 09:22
- Judet: Timiş
- Location: Timisoara
- Contact:
Re: optimizare cod
Poate suna dump dar, da, exista: F5 si Ctrl + F5 (fara debug) (indiferent de tipul buildului).viorel2005 wrote:Exista Debug, Release cu Debug si Release fara Debug?
Last edited by Silviu Ardelean on 18 May 2010, 00:24, edited 1 time in total.
- Marius Bancila
- Fondator
- Posts: 2344
- Joined: 11 Jul 2007, 11:45
- Judet: Timiş
- Location: Timisoara
- Contact:
Re: optimizare cod
Debug si Release sunt doar doua configuratii posibile, adica suma de setari pentru toolurile (compilartor, compilator de resurse, link-editor, etc.) care produc un executabil, oferite implicit de IDE. Se pot crea oricate astfel de configuratii cu orice nume si orice setari. Printre dintre diferentele majore dintre Release si Debug se numara faptul ca Release are activate optimizari, dar are setari mai mici pentru debugging. Totusi, aceste configuratii implicite se pot modifica oricand si oricum.
A nu se confunda "Debug" cu "debugger". Orice configuratie (debug, release sau orice alta variatie) poate fi rulata din IDE cu debuggerul de VC++ atasat procesului, sau fara ca debuggerul sa fie atasat. Dar asta nu inseamna "release cu/fara debug".
A nu se confunda "Debug" cu "debugger". Orice configuratie (debug, release sau orice alta variatie) poate fi rulata din IDE cu debuggerul de VC++ atasat procesului, sau fara ca debuggerul sa fie atasat. Dar asta nu inseamna "release cu/fara debug".