[ Dragi Tata @ 02.08.2002. 06:37 ] @
Pogledajte ovaj URL.

Pokušaću preko vikenda da to proverim i da uporedim sa gcc-om.

Uglavnom, Ivane (Dimkoviću) izgleda da je Intel-ov kompajler ipak bolji nego Majkrosoftov.

[Ovu poruku je menjao random dana 02.08.2002 u 03:15 PM GMT]
[ Ivan Dimkovic @ 02.08.2002. 11:19 ] @
Hmm

proslo je dosta vremena od kad sam poslednji put koristio ICL... u firmi imamo VC++ 6.0 i ICL 6 kad dobijemo NET sledece nedelje videcu da uporedim sa jos nekim aplikacijama.

Koja su tvoja iskustva sa .NET verzijom? Da li generise optimizovaniji kod od VCPP6?

Secam se da je VC .NET imao neke ozbiljne propuste u optimizatoru, ali to je bila Beta 2 - moguce je da je ostao poneki bug!

[ random @ 02.08.2002. 12:27 ] @
To nije baš toliko čudno. Recimo zanimljiv primer je HP-ov Dynamo optimizator, koji služi kao interpreter za PA-8000 set instrukcija, trasparentno radi optimizacije, a konačno dobijeni kod se izvršava na -- istom tom PA-8000 procesoru! I navodno testovi su pokazali da je ovakav "emulator samog sebe" u nekim slučajevima i do 20% brži nego kada se isti kod izvršava direktno.

Šteta što niko nije uporedio i kod koji generiše GCC...
[ leka @ 02.08.2002. 13:56 ] @
Citat:
Dragi Tata:
Pogledajte ovaj URL.

Pokušaću preko vikenda da to proverim i da uporedim sa gcc-om.

Uglavnom, Ivane (Dimkoviću) izgleda da je Intel-ov kompajler ipak bolji nego Majkrosoftov.


Pogledao sam ovo Nemanja i pravo da ti kazem nista me nije specijalno zacudilo. C# nisam nikada u zivotu koristio a verovatno i necu (nadam se). Ako je tako kako pise ovde, onda C# ima bolju optimizaciju u nekim delovima od VC++ valjda...

Daj posalji nam rezultate i sa GCC-a, to bi bilo interesantno videti. A takodje i Intelov kompajler... Hmmm, imam Watcom-a ovde, pa bih mogo da to probam i na njemu.

[Ovu poruku je menjao random dana 02.08.2002 u 03:15 PM GMT]
[ leka @ 02.08.2002. 13:57 ] @
Naravno, sve testove treba izvrsiti na jednoj jedinoj masini... Ja nemam masinu koja ima sve pomenute kompajlere na sebi... :(
[ Ivan Dimkovic @ 02.08.2002. 15:19 ] @
Evo jednog brzog testa!

Masina - Pentium IV 1.8 GHz

Source: mpeg-4 audio kompresor (dosta matematike)


Intel C++ 6.0 - kompresija je 3.16 - 3.20 puta brza od realnog vremena

MS VC++ 6.0 - kompresija je 2.56 - 2.59 puta brza od realnog vremena


ICL je koristio -qipo (interproceduralne optimizacije) i PIV specificne instrukcije

[ Ivan Dimkovic @ 02.08.2002. 15:59 ] @
Napomena moderatora:
Ova poruka je odgovor na post koji je izbrisan zbog neprimerenog rečnika i flejmovanja.

Nije im optimizator budjav, VC++ generise vrlo dobar IA-32 kod. Intel je mnogo brzi zato sto koristi Pentium IV (SSE-2 - xmm) optimizacije, a to je nesto sto MSVC ne podrzava (to nije ni postojalo kad se pojavio VC6)

Takodje, ne zaboravi da je Intel i napravio te procesore, pa je logicno da oni najbolje znaju da generisu kod :-) Uzgred, ICL je vrlo skup proizvod.
[ Dragi Tata @ 03.08.2002. 05:22 ] @
Evo šta sam dobio od rezultata (verzija sa do-while petljom):

1) VC.NET sa default Release optimizacijom: 3.0153s
2) C# sa default Release optimizacijom: 2.25s
3) gcc pod Windows-om (mingw) sa O2 optimizacijom: 1.6814s
4) gcc pod Linux-om sa O2 optimizacijom: 1.513s

Ovo je potpuno neverovatno. Probaću sutra verziju sa while petljom.
[ Dragi Tata @ 04.08.2002. 03:47 ] @
Ovo su rezultati kad zamenim do-while sa while (ovog puta preskačem Linux verziju da ne bih rebutovao računar bez potrebe)

1) VC.NET - 1.671s
2) C# - 2.05s
3) gcc (mingw) - 1.7995s

Ovo već pije vodu. Mada je zanimljivo da VC bolje optimizuje while petlje a gcc do-while petlju.
[ Ivan Dimkovic @ 04.08.2002. 12:15 ] @
Ja mislim da bi optimizaciju trebalo testirati na nekim komplikovanim parcicima softvera, kako bi se videli svi aspekti optimizatora.

Bilo bi lepo testirati 2-3 programska paketa (neki sa fixed point analizom, neki sa floating pointom i neki database app) i uporediti sve raspolozive kompajlere kako bi se stekla neka iole objektivna slika.
[ Dragi Tata @ 04.08.2002. 18:34 ] @
Naravno, u pravu si. Ovo gore je čisto jedan primer da u pojedinim slučajevima i C# može da bude brži od VC++a.

Inače, za ozbiljnije analize brzine može se koristiti paket Bench++ koji sadrži više različitih benchmark-a, a među njima i Stepanovljev za merenje penala na apstrakciju (u prevodu: što više OO, to sporije).
[ Ivan Dimkovic @ 05.08.2002. 11:01 ] @
Nego, Tatko - da li si ti cuo probleme sa Intel C++ kompajlerom da posle instalacije ICL pokarabasi BoundsChecker (NuMega) "instrumentation" sistem (kompajliranje sa analizom)

Ne znam gde se sudaraju ova dva paketa, ali posle instalacije ICL-a meni vise ne radi BoundsChecker "debug" build (tj. radi, ali se BC ne aktivira)? Ovo mi se desavalo na kucnom kompu, a evo i juce koliko vidim i u firminom?

Cim deinstaliram ICL, BC proradi k'o nov... mora da se negde sudaraju u makroima...
[ Dragi Tata @ 05.08.2002. 16:53 ] @
Stvarno ne znam. ICL nikad nisam koristio, a BoundsChecker sam isprobao jednom, ali je totalno poludeo, jer mi ovde imamo poseban memory-manager koji uvek zbuni takve programe.