[ Stefan Markic @ 16.03.2008. 19:47 ] @
Skoro sam na faksu u C++-u realizovao Quicksort i Bubble sort algoritme sortiranja. Za dubinu niza sam uzimao bas velike cifre, cisto da bi kol'ko tol'ko potrajalo, da bih lakse uocio koji je brzi (ne algoritam, vec program). Koristio sam Visual Studio 2005 i Dev-C++.

Sto se kompajliranja tice, Microsoft-ov kompajler je bio 10-ak sekundi brzi od GCC-a kod oba programa. Sto se rada samih programa tice, opet su ovi kompajlirani u VS-u bili brzi, za 3-4 sekunde.

Znam da je ovaj benchmark vrlo tanak i mozda po malo nemerodavan, ali kod je barem bio isti. Zato me i zanimaju iskustva ljudi koji su koristili oba kompajlera za neke jace stvari. Konkretno, zanimaju me performanse programa (na Windowsu, naravno), a da je kod bio isti ili sto slicniji.

P.S.

Za Buuble sort je bilo nekih minornih izmena u kodu, jer kako sam prvo radio u VS-u pa posle samo copy/paste u Dev-C++, GCC se nesto bunio oko deklarisanja tipa promenljivih za neke funkcije kada je trebao da kompajlira, ne secam se tacno sta bese... ne verujem da su te male izmene nesto drasticno uticale na slabije performanse programa. U svakom slucaju, kod za Quicksort je bio potpuno isti za oba kompajlera.
[ bkaradzic @ 16.03.2008. 20:12 ] @
Uporedi asembler output od oba kompajlera. GCC opcija -Wa,-a,-ad (> pipe u fajl) i MSVC opcija /Fa<ime output fajla>. Moguće je da nisi dobro podesio opcije za optimizaciju u GCC-u. Generalno ako ne koristis link time optimizaciju u MSVC kod bi trebao da bude veoma sličan. Ako koristiš link time optimizaciju onda proteraj gprof na gcc kompajliranom kodu da bi mogao da uradiš profile guided optimizaciju.
[ Časlav Ilić @ 18.03.2008. 09:37 ] @
Citat:
BrokeBody: Znam da je ovaj benchmark vrlo tanak i mozda po malo nemerodavan, ali kod je barem bio isti. [...]

Da li je odmeravanje tanko i nemerodavno ne može se baš oceniti prema tome kako si ga opisao. Mogao bi umesto toga da navedeš: hardversku platformu, kôd programa, upotrebljene zastavice oba kompilatora, apsolutna vremena izvršavanja programa.