Forum » Programiranje » [c++] Visual Studio, Release, vkljuciti neuporabljeno kodo
[c++] Visual Studio, Release, vkljuciti neuporabljeno kodo
goranv ::
V casih ustvarim funkcijo da bi testiral kodo in v asm kodi pogledal kako je optimizirana v Release nacinu. Problem je ta optimizacija ne vkljuci mojo kodo, ker se v programu ne uporabi. Je mozno kako oznaciti kodo, da to kodo vseeno vkljuci?
WhiteAngel ::
Če je gcc dovolj dober in ne nujno visual studio, potem imaš
g++ -S
, ki ti prevede v assembly in lahko vidiš, kaj ven pride.
g++ -S
, ki ti prevede v assembly in lahko vidiš, kaj ven pride.
goranv ::
compiler explorer ustvari drugacno kodo.
g++, sem ze veckrat poskusil kateri drugi prevejalnik in sem imel osnovne probleme, zato sem vedno prisel nazaj na VS kker se bolje razumeva.
g++, sem ze veckrat poskusil kateri drugi prevejalnik in sem imel osnovne probleme, zato sem vedno prisel nazaj na VS kker se bolje razumeva.
Randomness ::
Izklopi link-time optimizacijo. Če je funkcija "globalna", bi na ta način morala biti vključena v exe. Drugače pa imaš še n drugih načinov, kako to dosežeš drugače.
Aja, pa Godboltov Compiler Explorer podpira tudi MSVC, tako da ne ne vem, kaj si mislil s tem, da compiler explorer ustvari drugačno kodo. Pač nastaviti mu moraš prave opcije.
Aja, pa Godboltov Compiler Explorer podpira tudi MSVC, tako da ne ne vem, kaj si mislil s tem, da compiler explorer ustvari drugačno kodo. Pač nastaviti mu moraš prave opcije.
Zgodovina sprememb…
- spremenilo: Randomness ()
goranv ::
Izklopil sem optimizacijo ( #pragma optimize( "", off ) ), potem je bila koda ista kot v compiler explorer in isto kot pri Debug. Ne ustvarjam zahteven program, samo za info me zanima kako se optimizira dolocena koda. Moral bom dopolniti kodo da jo uposteva.
Randomness ::
Izklopil sem optimizacijoNe optimizacijo kar počez, napisal sem link-time optimizacijo. /LTCG:OFF
Randomness ::
V 2019 verziji ni OFF izbire.Če bi bolj natančno preveril, bi videl, da je. Kakorkoli, tudi v Compiler Explorerju lahko navedeš poljubno opcijo. Za to, kar želiš doseči ti, bo verjetno zadostovala že opcija /O2. Če rezultat še ne bo popolnoma enak, pa boš moral bolj natančno preveriti, s katerimi opcijami prevajaš v svojem projektu in enake opcije nastaviti v Compiler Explorerju. V splošnem pa, RTFM :-)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | WebAssembly postal standardOddelek: Novice / Brskalniki | 8552 (5536) | xmetallic |
» | Množenje v COddelek: Programiranje | 1513 (1028) | Isotropic |
» | Najhitrejši programski jezik? (strani: 1 2 )Oddelek: Programiranje | 7712 (5532) | Senitel |
» | [C++] novi standardi in compilerjiOddelek: Programiranje | 1608 (1201) | Ezekiel |