Visual Studio 2008 odkrije toplo vodo!
Izšel je Microsoftov Visual Studio 2008. Ena izmed novosti, ki se blazno reklamira in jo ljudje povsod omenjajo je /MP stikalo prevajalnika.
Bom kar tole citiral:
“/MP works by exploiting the fact that translation units (a source file coupled with its includes) can be compiled independently of each other (up to link time where all object files need to be present). Since we can compile each translation unit independently, we can parallelize the compilation by spawning multiple processes to handle a batch of source files.”
Pri Microsoftu prav prijetno presenečajo s takšnimi brilijantnimi idejami. Lahko bi jim rekel, “No shit, Sherlocks” ali pa kar, “Excellent work Einsteins!”
Še en malo novejši zapis. Ne ga srat, do 30% izboljšave pri prevajanju na računalniku, ki ima dve jedri!
Na hitro sem zgooglal tale zapis iz leta 1994… Možakar se sprašuje, “understanding GNU make parallel executions”…
Nevem, nevem…
6 thoughts on “Visual Studio 2008 odkrije toplo vodo!”
ah, ‘make -j’ so izumili?
Ja. Nekateri so mi potem povedali, da je make itak samo skripta in da si lahko ze prej v skripti pognal vec njihovih compilerjev. Zdaj pa to zmore sam compiler! In to se ni vse! To zna potem tudi IDE uporabljati!
In to baje ni kar tko.
I can see the trend here… … cez tri leta bodo kar sam IDE vgradili v compiler…
al pa kar v OS … mogoce se bolje 😀
Sej ne trdijo, da so karkoli izumili. Pač prej stvar tega ni mela (kar je očitno blo slabo) in zdej jo ima (kar je tudi slabo?!). Tudi če je stvar za časom, je kot eden od featurjev omembe vreden.
Glede na _počasnost_ GCC-ja ti featureji, ki jih je imel make leta 1994 ali 2004 niso nikoli kaj dosti pomagali. MSVC je bil vedno precej hitrejši. Tudi precompiled headerji, ki so mi na MSVC vedno delovali brez težav, ne prinesejo opazne razlike pri hitrosti, ali pa jih z gcc ne uporabljam pravilno. Skratka, paralelnost ali ne, vsi portable c++ projekti na katerih sem delal, so se bistveno dlje časa buildali z gcc, na Linuxu ali Windozih (mingw), na Windozih pa to bili tudi exe fajli nenormalno veliki (it’s a known issue with gcc/mingw). Testi tudi nakazujejo, da je executable narjen z msvc nekoliko hitrejši od tistega prevedenega z gcc.
Microsoftov compiler se mi ne zdi slab, je relativno hiter + še kar podpira sodobne featureje (uporabljam relativno sodoben c++, heavy stl and template use + boost library). Je pa GCC vsekakor bolj standard-compliant.
Kar se tiče napredka microsoftovega compilerja, za 2008 še nisem nič testiral, ampak razlika med 2003 (vs 7.1, compiler version 13.00) in 2005 (vs 8.0, compiler version 14.00) je očitna. 2005-ka dejansko producira manjše in hitrejše exe-je.
Aja, pa še to: seveda bosta IDE in compiler ostala ločena. Windozi so mogoče v splošnem bolj monolitni kot Linux, čeprav v teoriji arhitektura OS-a tega ne zapoveduje, samo praksa je pač taka. No, compiler bo seveda ostal ločen 🙂
Sicer pa se mi zdi tudi IDE vrhunski (skoraj vsaka verzija visual studia v času izida – prva, ki sem jo malce resneje uporabljal je bila 2.0, sem old skool, microsoft c++ 7.0 za DOS ne šteje :). Če si kdaj debuggiral kodo, ki veliko uporablja templateje in stl je hud pain in the ass, če nimaš IDE-ja, ki ti zna v uporabni obliki prikazati info, ki ga dobi od debuggerja. Na Linuxu uporabljam Eclipse/CDT 4.0 in je relativno kul, ampak slabši. Precej bolj neroden debugging experience, code completition dela precej slabše itn. Edini IDE ki mogoče doseže/preseže visual studio se mi zdi SlickEdit, ampak je prav tako closed source in pa dražji – cca. 300$ – (moji projekti, ki so portable pač ne uporabljajo nobenih atl/mfc/whatever-m$ delajo posledično tudi z vc++ express!, ki je free).
Comments are closed.